From fa38b516b14dc5a094f2362ca4e6499cac8a67f4 Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer Date: Thu, 25 Nov 2021 11:26:37 +0100 Subject: [PATCH] refactor(battery): use struct inheritance --- src/segment_battery.go | 18 ++++++++---------- src/segment_battery_test.go | 11 +++++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/segment_battery.go b/src/segment_battery.go index f7e8dabc..5e523c57 100644 --- a/src/segment_battery.go +++ b/src/segment_battery.go @@ -7,9 +7,10 @@ import ( ) type batt struct { - props *properties - env environmentInfo - Battery *battery.Battery + props *properties + env environmentInfo + + battery.Battery Percentage int Error string Icon string @@ -46,7 +47,6 @@ func (b *batt) enabled() bool { return false } - b.Battery = &battery.Battery{} for _, bt := range batteries { b.Battery.Current += bt.Current b.Battery.Full += bt.Full @@ -103,11 +103,9 @@ func (b *batt) enabledWhileError(err error) bool { // This hack ensures we display a fully charged battery, even if // that state can be incorrect. It's better to "ignore" the error // than to not display the segment at all as that will confuse users. - b.Battery = &battery.Battery{ - Current: 100, - Full: 100, - State: battery.Full, - } + b.Battery.Current = 100 + b.Battery.Full = 10 + b.Battery.State = battery.Full return true } @@ -131,7 +129,7 @@ func (b *batt) mapMostLogicalState(currentState, newState battery.State) battery } func (b *batt) string() string { - segmentTemplate := b.props.getString(SegmentTemplate, "{{.Icon}}{{ if not .Error }}{{.Percentage}}{{ end }}{{.Error}}") + segmentTemplate := b.props.getString(SegmentTemplate, "{{ if not .Error }}{{.Icon}}{{.Percentage}}{{ end }}{{.Error}}") template := &textTemplate{ Template: segmentTemplate, Context: b, diff --git a/src/segment_battery_test.go b/src/segment_battery_test.go index 090c40dd..0c350708 100644 --- a/src/segment_battery_test.go +++ b/src/segment_battery_test.go @@ -202,11 +202,14 @@ func TestGetBatteryColors(t *testing.T) { }, } for _, tc := range cases { + batt := &batt{ + Percentage: tc.Percentage, + } + if tc.Battery != nil { + batt.Battery = *tc.Battery + } segment := &Segment{ - writer: &batt{ - Percentage: tc.Percentage, - Battery: tc.Battery, - }, + writer: batt, } segment.Foreground = tc.DefaultColor segment.ForegroundTemplates = tc.Templates