diff options
author | xegineering <me@xegineering.eu> | 2024-10-01 22:20:47 +0200 |
---|---|---|
committer | xegineering <me@xegineering.eu> | 2024-10-01 22:20:47 +0200 |
commit | 3fc713ccfcc96738d981a97647a84a6cb6bbec04 (patch) | |
tree | a2c8b169d10cf4d7e833f5a076e35373f795aa36 /soundbox.go | |
parent | 4994a8accde17c5364e580eedc5ca1e91bf35197 (diff) | |
download | soundbox-go-3fc713ccfcc96738d981a97647a84a6cb6bbec04.tar soundbox-go-3fc713ccfcc96738d981a97647a84a6cb6bbec04.tar.zst soundbox-go-3fc713ccfcc96738d981a97647a84a6cb6bbec04.zip |
Make soundbox package top-level
It is not expected that this library will be so big that multiple
packages make sense. Thus it should start only with the main package.
Diffstat (limited to 'soundbox.go')
-rw-r--r-- | soundbox.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/soundbox.go b/soundbox.go new file mode 100644 index 0000000..fcabcdc --- /dev/null +++ b/soundbox.go @@ -0,0 +1,25 @@ +package soundbox + +import ( + "fmt" + "net" +) + +type Soundbox struct { + HardwareAddr net.HardwareAddr +} + +func NewSoundbox(mac string) (Soundbox, error) { + hardwareAddr, err := net.ParseMAC(mac) + if err != nil { + return Soundbox{}, err + } + + if len(hardwareAddr) != 6 { + return Soundbox{}, fmt.Errorf("Only IEEE 802 MAC-48 addresses supported") + } + + return Soundbox{ + HardwareAddr: hardwareAddr, + }, nil +} |