Files
govpp-snmp-agentx/go-agentx/pdu/flags.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, " | "))
}