// 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, " | ")) }