Update Lego
This commit is contained in:
parent
36966da701
commit
253060b4f3
185 changed files with 16653 additions and 3210 deletions
63
vendor/github.com/exoscale/egoscale/macaddress.go
generated
vendored
Normal file
63
vendor/github.com/exoscale/egoscale/macaddress.go
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
package egoscale
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net"
|
||||
)
|
||||
|
||||
// MACAddress is a nicely JSON serializable net.HardwareAddr
|
||||
type MACAddress net.HardwareAddr
|
||||
|
||||
// String returns the MAC address in standard format
|
||||
func (mac MACAddress) String() string {
|
||||
return (net.HardwareAddr)(mac).String()
|
||||
}
|
||||
|
||||
// MAC48 builds a MAC-48 MACAddress
|
||||
func MAC48(a, b, c, d, e, f byte) MACAddress {
|
||||
m := make(MACAddress, 6)
|
||||
m[0] = a
|
||||
m[1] = b
|
||||
m[2] = c
|
||||
m[3] = d
|
||||
m[4] = e
|
||||
m[5] = f
|
||||
return m
|
||||
}
|
||||
|
||||
// UnmarshalJSON unmarshals the raw JSON into the MAC address
|
||||
func (mac *MACAddress) UnmarshalJSON(b []byte) error {
|
||||
var addr string
|
||||
if err := json.Unmarshal(b, &addr); err != nil {
|
||||
return err
|
||||
}
|
||||
hw, err := ParseMAC(addr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
*mac = make(MACAddress, 6)
|
||||
copy(*mac, hw)
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalJSON converts the MAC Address to a string representation
|
||||
func (mac MACAddress) MarshalJSON() ([]byte, error) {
|
||||
return []byte(fmt.Sprintf("%q", mac.String())), nil
|
||||
}
|
||||
|
||||
// ParseMAC converts a string into a MACAddress
|
||||
func ParseMAC(s string) (MACAddress, error) {
|
||||
hw, err := net.ParseMAC(s)
|
||||
return (MACAddress)(hw), err
|
||||
}
|
||||
|
||||
// MustParseMAC acts like ParseMAC but panics if in case of an error
|
||||
func MustParseMAC(s string) MACAddress {
|
||||
mac, err := ParseMAC(s)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return mac
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue