46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
// Copyright 2018 The agentx authors
|
|
// Licensed under the LGPLv3 with static-linking exception.
|
|
// See LICENCE file for details.
|
|
|
|
package pdu
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// The various pdu packet flags.
|
|
const (
|
|
FlagInstanceRegistration Flags = 1 << 0
|
|
FlagNewIndex Flags = 1 << 1
|
|
FlagAnyIndex Flags = 1 << 2
|
|
FlagNonDefaultContext Flags = 1 << 3
|
|
FlagNetworkByteOrder Flags = 1 << 4
|
|
)
|
|
|
|
// Flags defines pdu packet flags.
|
|
type Flags byte
|
|
|
|
func (f Flags) String() string {
|
|
result := []string{}
|
|
if f&FlagInstanceRegistration != 0 {
|
|
result = append(result, "FlagInstanceRegistration")
|
|
}
|
|
if f&FlagNewIndex != 0 {
|
|
result = append(result, "FlagNewIndex")
|
|
}
|
|
if f&FlagAnyIndex != 0 {
|
|
result = append(result, "FlagAnyIndex")
|
|
}
|
|
if f&FlagNonDefaultContext != 0 {
|
|
result = append(result, "FlagNonDefaultContext")
|
|
}
|
|
if f&FlagNetworkByteOrder != 0 {
|
|
result = append(result, "FlagNetworkByteOrder")
|
|
}
|
|
if len(result) == 0 {
|
|
return "(FlagNone)"
|
|
}
|
|
return fmt.Sprintf("(%s)", strings.Join(result, " | "))
|
|
}
|