Skip to content

Commit 2d726f8

Browse files
status: add functional opts on SubServerStatus init
Refactor Register & Enable functions to enable setting of SubServerOptions, i.e. functional options, when initiating a SubServer.
1 parent b661875 commit 2d726f8

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

status/manager.go

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import (
99
"github.com/lightninglabs/lightning-terminal/litrpc"
1010
)
1111

12+
// SubServerOption defines a functional option that can be used to modify the
13+
// values of a SubServerStatus's fields.
14+
type SubServerOption func(status *SubServerStatus)
15+
1216
// SubServerStatus represents the status of a sub-server.
1317
type SubServerStatus struct {
1418
// Disabled is true if the sub-server is available in the LiT bundle but
@@ -24,9 +28,11 @@ type SubServerStatus struct {
2428
}
2529

2630
// newSubServerStatus constructs a new SubServerStatus.
27-
func newSubServerStatus() *SubServerStatus {
31+
func newSubServerStatus(disabled bool,
32+
opts ...SubServerOption) *SubServerStatus {
33+
2834
return &SubServerStatus{
29-
Disabled: true,
35+
Disabled: disabled,
3036
}
3137
}
3238

@@ -73,21 +79,28 @@ func (s *Manager) SubServerStatus(_ context.Context,
7379

7480
// RegisterSubServer will create a new sub-server entry for the Manager to
7581
// keep track of.
76-
func (s *Manager) RegisterSubServer(name string) {
82+
func (s *Manager) RegisterSubServer(name string, opts ...SubServerOption) {
7783
s.mu.RLock()
7884
defer s.mu.RUnlock()
7985

80-
s.subServers[name] = newSubServerStatus()
86+
s.registerSubServerUnsafe(name, true, opts...)
8187
}
8288

8389
// RegisterAndEnableSubServer will create a new sub-server entry for the
8490
// Manager to keep track of and will set it as enabled.
85-
func (s *Manager) RegisterAndEnableSubServer(name string) {
91+
func (s *Manager) RegisterAndEnableSubServer(name string,
92+
opts ...SubServerOption) {
93+
8694
s.mu.RLock()
8795
defer s.mu.RUnlock()
8896

89-
ss := newSubServerStatus()
90-
ss.Disabled = false
97+
s.registerSubServerUnsafe(name, false, opts...)
98+
}
99+
100+
func (s *Manager) registerSubServerUnsafe(name string, disabled bool,
101+
opts ...SubServerOption) {
102+
103+
ss := newSubServerStatus(disabled, opts...)
91104

92105
s.subServers[name] = ss
93106
}

0 commit comments

Comments
 (0)