godaikin

package module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2025 License: MIT Imports: 14 Imported by: 0

README

GoDaikin

📝 Note: This has been built with some Claude Sonnet 4.

A Go library for controlling Daikin HVAC systems, ported from the Python pydaikin library. This library provides a simple and efficient way to interact with Daikin air conditioning units over HTTP.

go get github.com/jattkaim/godaikin

Quick Start

Standard Devices (BRP069)
client := godaikin.NewClient(nil)
device, err := client.Connect("192.168.1.100")
SkyFi Devices (Password Authentication)
client := godaikin.NewClient(nil)
device, err := client.Connect("192.168.1.100",
    godaikin.WithPassword("your_password"))
BRP072C Devices (Key + UUID Authentication)
client := godaikin.NewClient(nil)
device, err := client.Connect("192.168.1.100",
    godaikin.WithKey("your_key"),
    godaikin.WithUUID("your_uuid"))

Basic Operations

Get Device Status
fmt.Printf("Device Type: %s\n", device.GetDeviceType())
fmt.Printf("IP Address: %s\n", device.GetDeviceIP())
fmt.Printf("MAC Address: %s\n", device.GetMAC())
fmt.Printf("Power State: %t\n", device.GetPowerState())
fmt.Printf("Mode: %s\n", device.GetMode())

if temp, err := device.GetInsideTemperature(); err == nil {
    fmt.Printf("Inside Temperature: %.1f°C\n", temp)
}

if temp, err := device.GetTargetTemperature(); err == nil {
    fmt.Printf("Target Temperature: %.1f°C\n", temp)
}
Control Device
ctx := context.Background()

// Set temperature
err := device.Set(ctx, map[string]string{
    "stemp": "24.0",  // Set target temperature to 24°C
})

// Change mode
err = device.Set(ctx, map[string]string{
    "mode": "cool",   // Set to cooling mode
})

// Turn off
err = device.Set(ctx, map[string]string{
    "pow": "0",       // Power off
})

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

This project is licensed under the MIT License.

Documentation

Index

Constants

View Source
const TURN_OFF_SWING_AXIS = "000000"
View Source
const TURN_ON_SWING_AXIS = "0F0000"

Variables

View Source
var API_PATHS = map[string]interface{}{
	"power": []string{
		"/dsiot/edge/adr_0100.dgc_status",
		"dgc_status",
		"e_1002",
		"e_A002",
		"p_01",
	},
	"mode": []string{
		"/dsiot/edge/adr_0100.dgc_status",
		"dgc_status",
		"e_1002",
		"e_3001",
		"p_01",
	},
	"indoor_temp": []string{
		"/dsiot/edge/adr_0100.dgc_status",
		"dgc_status",
		"e_1002",
		"e_A00B",
		"p_01",
	},
	"indoor_humidity": []string{
		"/dsiot/edge/adr_0100.dgc_status",
		"dgc_status",
		"e_1002",
		"e_A00B",
		"p_02",
	},
	"outdoor_temp": []string{
		"/dsiot/edge/adr_0200.dgc_status",
		"dgc_status",
		"e_1003",
		"e_A00D",
		"p_01",
	},
	"mac_address": []string{"/dsiot/edge.adp_i", "adp_i", "mac"},
	"temp_settings": map[string][]string{
		"cool": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_02",
		},
		"heat": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_03",
		},
		"auto": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_1D",
		},
	},
	"fan_settings": map[string][]string{
		"auto": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_26",
		},
		"cool": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_09",
		},
		"heat": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_0A",
		},
		"fan": {
			"/dsiot/edge/adr_0100.dgc_status",
			"dgc_status",
			"e_1002",
			"e_3001",
			"p_28",
		},
	},
	"swing_settings": map[string]map[string][]string{
		"auto": {
			"vertical": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_20",
			},
			"horizontal": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_21",
			},
		},
		"cool": {
			"vertical": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_05",
			},
			"horizontal": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_06",
			},
		},
		"heat": {
			"vertical": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_07",
			},
			"horizontal": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_08",
			},
		},
		"fan": {
			"vertical": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_24",
			},
			"horizontal": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_25",
			},
		},
		"dry": {
			"vertical": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_22",
			},
			"horizontal": {
				"/dsiot/edge/adr_0100.dgc_status",
				"dgc_status",
				"e_1002",
				"e_3001",
				"p_23",
			},
		},
	},
	"energy": map[string][]string{
		"today_runtime": {
			"/dsiot/edge/adr_0100.i_power.week_power",
			"week_power",
			"today_runtime",
		},
		"weekly_data": {
			"/dsiot/edge/adr_0100.i_power.week_power",
			"week_power",
			"datas",
		},
	},
}

API paths following Python exactly

View Source
var FAN_MODE_MAP = map[string]string{
	"0A00": "auto",
	"0B00": "quiet",
	"0300": "1",
	"0400": "2",
	"0500": "3",
	"0600": "4",
	"0700": "5",
}
View Source
var MODE_MAP = map[string]string{
	"0300": "auto",
	"0200": "cool",
	"0100": "heat",
	"0000": "fan",
	"0500": "dry",
}

Mode mappings

View Source
var REVERSE_FAN_MODE_MAP = make(map[string]string)
View Source
var REVERSE_MODE_MAP = make(map[string]string)

Functions

This section is empty.

Types

type Appliance

type Appliance interface {
	Init(ctx context.Context) error
	UpdateStatus(ctx context.Context) error
	Set(ctx context.Context, settings map[string]string) error

	GetValues() *Values
	GetDeviceIP() string
	GetDeviceType() string
	GetMAC() string

	GetInsideTemperature() (float64, error)
	GetOutsideTemperature() (float64, error)
	GetTargetTemperature() (float64, error)

	GetMode() string
	GetPowerState() string
	GetFanRate() string
	GetFanDirection() string

	SupportsFanRate() bool
	SupportsSwingMode() bool
	SupportsAwayMode() bool
	SupportsAdvancedModes() bool
	SupportsEnergyConsumption() bool

	SetHoliday(ctx context.Context, mode string) error
	SetStreamer(ctx context.Context, mode string) error
	SetAdvancedMode(ctx context.Context, mode, value string) error
}

Appliance represents a Daikin HVAC appliance

func CreateDaikinDevice

func CreateDaikinDevice(deviceID string, logger Logger, options ...Option) (Appliance, error)

CreateDaikinDevice creates the appropriate Daikin device based on auto-detection

type AuthenticationError

type AuthenticationError struct {
	*DaikinError
}

func NewAuthenticationError

func NewAuthenticationError(message string, err error) *AuthenticationError

type BaseAppliance

type BaseAppliance struct {
	DeviceIP   string
	BaseURL    string
	Values     *Values
	HTTPClient *http.Client
	Headers    map[string]string
	Logger     Logger

	// Translations for converting between Daikin values and human-readable values
	Translations map[string]map[string]string

	HTTPResources []string
	InfoResources []string

	MaxConcurrentRequests int
}

BaseAppliance provides common functionality for all Daikin devices

func NewBaseAppliance

func NewBaseAppliance(deviceIP string, logger Logger) *BaseAppliance

func (*BaseAppliance) GetDeviceIP

func (b *BaseAppliance) GetDeviceIP() string

func (*BaseAppliance) GetDeviceType

func (b *BaseAppliance) GetDeviceType() string

func (*BaseAppliance) GetFanDirection

func (b *BaseAppliance) GetFanDirection() string

func (*BaseAppliance) GetFanRate

func (b *BaseAppliance) GetFanRate() string

func (*BaseAppliance) GetInsideTemperature

func (b *BaseAppliance) GetInsideTemperature() (float64, error)

func (*BaseAppliance) GetMAC

func (b *BaseAppliance) GetMAC() string

func (*BaseAppliance) GetMode

func (b *BaseAppliance) GetMode() string

func (*BaseAppliance) GetOutsideTemperature

func (b *BaseAppliance) GetOutsideTemperature() (float64, error)

func (*BaseAppliance) GetPowerState

func (b *BaseAppliance) GetPowerState() string

func (*BaseAppliance) GetTargetTemperature

func (b *BaseAppliance) GetTargetTemperature() (float64, error)

func (*BaseAppliance) GetValues

func (b *BaseAppliance) GetValues() *Values

func (*BaseAppliance) Init

func (b *BaseAppliance) Init(ctx context.Context) error

func (*BaseAppliance) Set

func (b *BaseAppliance) Set(ctx context.Context, settings map[string]string) error

func (*BaseAppliance) SetAdvancedMode

func (b *BaseAppliance) SetAdvancedMode(ctx context.Context, mode, value string) error

func (*BaseAppliance) SetHoliday

func (b *BaseAppliance) SetHoliday(ctx context.Context, mode string) error

func (*BaseAppliance) SetStreamer

func (b *BaseAppliance) SetStreamer(ctx context.Context, mode string) error

func (*BaseAppliance) SupportsAdvancedModes

func (b *BaseAppliance) SupportsAdvancedModes() bool

func (*BaseAppliance) SupportsAwayMode

func (b *BaseAppliance) SupportsAwayMode() bool

func (*BaseAppliance) SupportsEnergyConsumption

func (b *BaseAppliance) SupportsEnergyConsumption() bool

func (*BaseAppliance) SupportsFanRate

func (b *BaseAppliance) SupportsFanRate() bool

func (*BaseAppliance) SupportsSwingMode

func (b *BaseAppliance) SupportsSwingMode() bool

func (*BaseAppliance) UpdateStatus

func (b *BaseAppliance) UpdateStatus(ctx context.Context) error

type ClientOption added in v0.1.2

type ClientOption func(*DaikinClient)

func WithLogger added in v0.1.2

func WithLogger(slogger *slog.Logger) ClientOption

type Config

type Config struct {
	Password   string
	Key        string
	UUID       string
	SSLContext *tls.Config
}

type ConnectionError

type ConnectionError struct {
	*DaikinError
}

func NewConnectionError

func NewConnectionError(message string, err error) *ConnectionError

type DaikinAirBase

type DaikinAirBase struct {
	*BaseAppliance
}

DaikinAirBase represents a Daikin AirBase device (BRP15B61)

func NewDaikinAirBase

func NewDaikinAirBase(deviceIP string, logger Logger) *DaikinAirBase

NewDaikinAirBase creates a new AirBase device instance

func (*DaikinAirBase) GetDeviceType

func (d *DaikinAirBase) GetDeviceType() string

func (*DaikinAirBase) GetSupportedFanRates

func (d *DaikinAirBase) GetSupportedFanRates() []string

func (*DaikinAirBase) GetZones

func (d *DaikinAirBase) GetZones() []map[string]interface{}

GetZones returns list of zones

func (*DaikinAirBase) Init

func (d *DaikinAirBase) Init(ctx context.Context) error

func (*DaikinAirBase) Represent

func (d *DaikinAirBase) Represent(key string) (string, interface{})

func (*DaikinAirBase) Set

func (d *DaikinAirBase) Set(ctx context.Context, settings map[string]string) error

func (*DaikinAirBase) SetZone

func (d *DaikinAirBase) SetZone(ctx context.Context, zoneID int, key string, value interface{}) error

SetZone sets zone status

func (*DaikinAirBase) SupportAwayMode

func (d *DaikinAirBase) SupportAwayMode() bool

func (*DaikinAirBase) SupportSwingMode

func (d *DaikinAirBase) SupportSwingMode() bool

func (*DaikinAirBase) SupportZoneCount

func (d *DaikinAirBase) SupportZoneCount() bool

func (*DaikinAirBase) SupportZoneTemperature

func (d *DaikinAirBase) SupportZoneTemperature() bool

func (*DaikinAirBase) UpdateStatus

func (d *DaikinAirBase) UpdateStatus(ctx context.Context) error

type DaikinAttribute

type DaikinAttribute struct {
	Name  string
	Value interface{}
	Path  []string
	To    string
}

func (*DaikinAttribute) Format

func (d *DaikinAttribute) Format() map[string]interface{}

type DaikinBRP069

type DaikinBRP069 struct {
	*BaseAppliance
}

DaikinBRP069 represents a Daikin BRP069[A-B]xx device

func NewDaikinBRP069

func NewDaikinBRP069(deviceIP string, logger Logger) *DaikinBRP069

NewDaikinBRP069 creates a new BRP069 device instance

func (*DaikinBRP069) GetCompressorFrequency

func (d *DaikinBRP069) GetCompressorFrequency() (float64, error)

GetCompressorFrequency returns the current compressor frequency

func (*DaikinBRP069) GetDeviceType

func (d *DaikinBRP069) GetDeviceType() string

func (*DaikinBRP069) GetHumidity

func (d *DaikinBRP069) GetHumidity() (float64, error)

GetHumidity returns the current humidity

func (*DaikinBRP069) GetTargetHumidity

func (d *DaikinBRP069) GetTargetHumidity() (float64, error)

GetTargetHumidity returns the target humidity

func (*DaikinBRP069) Init

func (d *DaikinBRP069) Init(ctx context.Context) error

Init initializes the BRP069 device

func (*DaikinBRP069) Set

func (d *DaikinBRP069) Set(ctx context.Context, settings map[string]string) error

Set sets device parameters

func (*DaikinBRP069) SetAdvancedMode

func (d *DaikinBRP069) SetAdvancedMode(ctx context.Context, mode, value string) error

SetAdvancedMode sets advanced modes like powerful, econo, etc.

func (*DaikinBRP069) SetClock

func (d *DaikinBRP069) SetClock(ctx context.Context) error

SetClock sets the clock on the AC to the current time

func (*DaikinBRP069) SetHoliday

func (d *DaikinBRP069) SetHoliday(ctx context.Context, mode string) error

SetHoliday sets holiday/away mode

func (*DaikinBRP069) SetStreamer

func (d *DaikinBRP069) SetStreamer(ctx context.Context, mode string) error

SetStreamer sets streamer mode

func (*DaikinBRP069) SupportsCompressorFrequency

func (d *DaikinBRP069) SupportsCompressorFrequency() bool

SupportsCompressorFrequency returns whether device supports compressor frequency reading

func (*DaikinBRP069) SupportsHumidity

func (d *DaikinBRP069) SupportsHumidity() bool

SupportsHumidity returns whether the device has humidity sensor

func (*DaikinBRP069) UpdateStatus

func (d *DaikinBRP069) UpdateStatus(ctx context.Context) error

UpdateStatus updates the device status using info resources

type DaikinBRP072C

type DaikinBRP072C struct {
	*DaikinBRP069
	Key  string
	UUID string
}

func NewDaikinBRP072C

func NewDaikinBRP072C(deviceIP, key, uuid string, logger Logger) *DaikinBRP072C

NewDaikinBRP072C creates BRP072C device

func (*DaikinBRP072C) GetDeviceType

func (d *DaikinBRP072C) GetDeviceType() string

func (*DaikinBRP072C) Init

func (d *DaikinBRP072C) Init(ctx context.Context) error

type DaikinBRP084

type DaikinBRP084 struct {
	*BaseAppliance
	URL string
}

DaikinBRP084 represents a Daikin BRP device with firmware 2.8.0

func NewDaikinBRP084

func NewDaikinBRP084(deviceIP string, logger Logger) *DaikinBRP084

NewDaikinBRP084 creates BRP084 device

func (*DaikinBRP084) GetDeviceType

func (d *DaikinBRP084) GetDeviceType() string

func (*DaikinBRP084) GetFanDirection

func (d *DaikinBRP084) GetFanDirection() string

GetFanDirection returns current fan direction

func (*DaikinBRP084) GetFanRate

func (d *DaikinBRP084) GetFanRate() string

GetFanRate returns current fan rate

func (*DaikinBRP084) GetInsideTemperature

func (d *DaikinBRP084) GetInsideTemperature() (float64, error)

GetInsideTemperature returns current inside temperature

func (*DaikinBRP084) GetMAC

func (d *DaikinBRP084) GetMAC() string

GetMAC returns device MAC address

func (*DaikinBRP084) GetMode

func (d *DaikinBRP084) GetMode() string

GetMode returns current operating mode

func (*DaikinBRP084) GetOutsideTemperature

func (d *DaikinBRP084) GetOutsideTemperature() (float64, error)

GetOutsideTemperature returns current outside temperature

func (*DaikinBRP084) GetPowerState

func (d *DaikinBRP084) GetPowerState() string

GetPowerState returns whether device is powered on

func (*DaikinBRP084) GetTargetTemperature

func (d *DaikinBRP084) GetTargetTemperature() (float64, error)

GetTargetTemperature returns current target temperature

func (*DaikinBRP084) Init

func (d *DaikinBRP084) Init(ctx context.Context) error

func (*DaikinBRP084) Set

func (d *DaikinBRP084) Set(ctx context.Context, settings map[string]string) error

func (*DaikinBRP084) SetAdvancedMode

func (d *DaikinBRP084) SetAdvancedMode(ctx context.Context, mode, value string) error

SetAdvancedMode - not supported in firmware 2.8.0

func (*DaikinBRP084) SetHoliday

func (d *DaikinBRP084) SetHoliday(ctx context.Context, mode string) error

SetHoliday - not supported in firmware 2.8.0

func (*DaikinBRP084) SetStreamer

func (d *DaikinBRP084) SetStreamer(ctx context.Context, mode string) error

SetStreamer - not supported in firmware 2.8.0

func (*DaikinBRP084) SupportAdvancedModes

func (d *DaikinBRP084) SupportAdvancedModes() bool

func (*DaikinBRP084) SupportAwayMode

func (d *DaikinBRP084) SupportAwayMode() bool

Support properties like Python

func (*DaikinBRP084) SupportZoneCount

func (d *DaikinBRP084) SupportZoneCount() bool

func (*DaikinBRP084) SupportsEnergyConsumption

func (d *DaikinBRP084) SupportsEnergyConsumption() bool

func (*DaikinBRP084) SupportsFanRate

func (d *DaikinBRP084) SupportsFanRate() bool

Additional support methods

func (*DaikinBRP084) SupportsSwingMode

func (d *DaikinBRP084) SupportsSwingMode() bool

func (*DaikinBRP084) UpdateStatus

func (d *DaikinBRP084) UpdateStatus(ctx context.Context) error

type DaikinClient

type DaikinClient struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(opts ...ClientOption) *DaikinClient

func (*DaikinClient) Connect

func (c *DaikinClient) Connect(deviceIP string, options ...Option) (Appliance, error)

func (*DaikinClient) TestConnection

func (c *DaikinClient) TestConnection(deviceIP string, options ...Option) error

type DaikinError

type DaikinError struct {
	Message string
	Err     error
}

func NewDaikinError

func NewDaikinError(message string, err error) *DaikinError

func (*DaikinError) Error

func (e *DaikinError) Error() string

func (*DaikinError) Unwrap

func (e *DaikinError) Unwrap() error

type DaikinRequest

type DaikinRequest struct {
	Attributes []DaikinAttribute
}

func (*DaikinRequest) Serialize

func (d *DaikinRequest) Serialize(payload map[string]interface{}) map[string]interface{}

Serialize the request to JSON payload

type DaikinSkyFi

type DaikinSkyFi struct {
	*BaseAppliance
	Password string
}

DaikinSkyFi represents a Daikin SkyFi device

func NewDaikinSkyFi

func NewDaikinSkyFi(deviceIP, password string, logger Logger) *DaikinSkyFi

NewDaikinSkyFi creates SkyFi device

func (*DaikinSkyFi) GetDeviceType

func (d *DaikinSkyFi) GetDeviceType() string

func (*DaikinSkyFi) GetZones

func (d *DaikinSkyFi) GetZones() []map[string]interface{}

Zones support

func (*DaikinSkyFi) Init

func (d *DaikinSkyFi) Init(ctx context.Context) error

func (*DaikinSkyFi) Set

func (d *DaikinSkyFi) Set(ctx context.Context, settings map[string]string) error

func (*DaikinSkyFi) SetZone

func (d *DaikinSkyFi) SetZone(ctx context.Context, zoneID int, key string, value interface{}) error

func (*DaikinSkyFi) SupportAwayMode

func (d *DaikinSkyFi) SupportAwayMode() bool

func (*DaikinSkyFi) SupportFanRate

func (d *DaikinSkyFi) SupportFanRate() bool

func (*DaikinSkyFi) SupportSwingMode

func (d *DaikinSkyFi) SupportSwingMode() bool

func (*DaikinSkyFi) UpdateStatus

func (d *DaikinSkyFi) UpdateStatus(ctx context.Context) error

type Logger

type Logger interface {
	Debug(msg string, args ...any)
	Info(msg string, args ...any)
	Warn(msg string, args ...any)
	Error(msg string, args ...any)
}

Logger defines the logging interface for the library

type NoOpLogger

type NoOpLogger struct{}

NoOpLogger is a logger that does nothing (silent by default)

func (NoOpLogger) Debug

func (NoOpLogger) Debug(string, ...any)

func (NoOpLogger) Error

func (NoOpLogger) Error(string, ...any)

func (NoOpLogger) Info

func (NoOpLogger) Info(string, ...any)

func (NoOpLogger) Warn

func (NoOpLogger) Warn(string, ...any)

type Option

type Option func(*Config)

func WithKey

func WithKey(key string) Option

func WithPassword

func WithPassword(password string) Option

func WithSSLContext

func WithSSLContext(sslContext *tls.Config) Option

func WithUUID

func WithUUID(uuid string) Option

type ParseError

type ParseError struct {
	*DaikinError
}

func NewParseError

func NewParseError(message string, err error) *ParseError

type SlogAdapter

type SlogAdapter struct {
	// contains filtered or unexported fields
}

SlogAdapter adapts slog.Logger to our Logger interface

func NewSlogAdapter

func NewSlogAdapter(logger *slog.Logger) *SlogAdapter

NewSlogAdapter creates a new SlogAdapter

func (*SlogAdapter) Debug

func (s *SlogAdapter) Debug(msg string, args ...any)

func (*SlogAdapter) Error

func (s *SlogAdapter) Error(msg string, args ...any)

func (*SlogAdapter) Info

func (s *SlogAdapter) Info(msg string, args ...any)

func (*SlogAdapter) Warn

func (s *SlogAdapter) Warn(msg string, args ...any)

type Values

type Values struct {
	// contains filtered or unexported fields
}

Values represents a smart container for appliance's data It keeps track of which values have been accessed and when resources were last updated

func NewValues

func NewValues() *Values

func (*Values) All

func (v *Values) All() map[string]string

func (*Values) Delete

func (v *Values) Delete(key string)

func (*Values) Get

func (v *Values) Get(key string) (string, bool)

func (*Values) GetWithInvalidation

func (v *Values) GetWithInvalidation(key string, invalidate bool) (string, bool)

GetWithInvalidation returns the value for the given key If invalidate is true, it marks the associated resource as needing update

func (*Values) Has

func (v *Values) Has(key string) bool

func (*Values) Keys

func (v *Values) Keys() []string

func (*Values) Len

func (v *Values) Len() int

func (*Values) Set

func (v *Values) Set(key, value string)

func (*Values) ShouldResourceBeUpdated

func (v *Values) ShouldResourceBeUpdated(resource string) bool

ShouldResourceBeUpdated returns whether a resource should be updated considering recent use of values it returns

func (*Values) Update

func (v *Values) Update(data map[string]string)

func (*Values) UpdateByResource

func (v *Values) UpdateByResource(resource string, data map[string]string)

UpdateByResource updates values from a resource and tracks which resource provided them

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL