Documentation ¶
Overview ¶
Package numorstring implements a set of type definitions that in YAML or JSON format may be represented by either a number or a string.
Index ¶
Constants ¶
const ( ProtocolUDP = "UDP" ProtocolTCP = "TCP" ProtocolICMP = "ICMP" ProtocolICMPv6 = "ICMPv6" ProtocolSCTP = "SCTP" ProtocolUDPLite = "UDPLite" ProtocolUDPV1 = "udp" ProtocolTCPV1 = "tcp" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ASNumber ¶
type ASNumber uint32
func ASNumberFromString ¶
ASNumberFromString creates an ASNumber struct from a string value. The string value may simply be a number or may be the ASN in dotted notation.
func (*ASNumber) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaller uinterface.
type NumOrStringType ¶
type NumOrStringType int
Type represents the stored type of Int32OrString.
const ( NumOrStringNum NumOrStringType = iota // The structure holds a number. NumOrStringString // The structure holds a string. )
type Port ¶
Port represents either a range of numeric ports or a named port.
- For a named port, set the PortName, leaving MinPort and MaxPort as 0.
- For a port range, set MinPort and MaxPort to the (inclusive) port numbers. Set PortName to "".
- For a single port, set MinPort = MaxPort and PortName = "".
func PortFromRange ¶
PortFromRange creates a Port struct representing a range of ports.
func PortFromString ¶
PortFromString creates a Port struct from its string representation. A port may either be single value "1234", a range of values "100:200" or a named port: "name".
func SinglePort ¶
SinglePort creates a Port struct representing a single port.
func (Port) MarshalJSON ¶
MarshalJSON implements the json.Marshaller interface.
func (Port) String ¶
String returns the string value. If the min and max port are the same this returns a single string representation of the port number, otherwise if returns a colon separated range of ports.
func (*Port) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaller interface.
type Protocol ¶
type Protocol Uint8OrString
func ProtocolFromInt ¶
ProtocolFromInt creates a Protocol struct from an integer value.
func ProtocolFromString ¶
ProtocolFromString creates a Protocol struct from a string value.
func ProtocolFromStringV1 ¶
ProtocolFromStringV1 creates a Protocol struct from a string value (for the v1 API)
func ProtocolV3FromProtocolV1 ¶
ProtocolV3FromProtocolV1 creates a v3 Protocol from a v1 Protocol, while handling case conversion.
func (Protocol) MarshalJSON ¶
MarshalJSON implements the json.Marshaller interface.
func (Protocol) NumValue ¶
NumValue returns the NumVal if type Int, or if it is a String, will attempt a conversion to int.
func (Protocol) SupportsPorts ¶
SupportsProtocols returns whether this protocol supports ports. This returns true if the numerical or string verion of the protocol indicates TCP (6) or UDP (17).
func (*Protocol) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaller interface.
type Uint8OrString ¶
type Uint8OrString struct { Type NumOrStringType NumVal uint8 StrVal string }
UInt8OrString is a type that can hold an uint8 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.
func (Uint8OrString) MarshalJSON ¶
func (i Uint8OrString) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaller interface.
func (Uint8OrString) NumValue ¶
func (i Uint8OrString) NumValue() (uint8, error)
NumValue returns the NumVal if type Int, or if it is a String, will attempt a conversion to int.
func (Uint8OrString) String ¶
func (i Uint8OrString) String() string
String returns the string value, or the Itoa of the int value.
func (*Uint8OrString) UnmarshalJSON ¶
func (i *Uint8OrString) UnmarshalJSON(b []byte) error
UnmarshalJSON implements the json.Unmarshaller interface.