address_string

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2023 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

The address_string package provides interfaces to define how to create certain strings from addresses and address sections, as well as the builder types for creating instances of these interfaces.

For example, StringOptionsBuilder creates instances that implement StringOptions to specify generic strings.

For more specific versions and address types, there are more specific builders and corresponding interface types.

Each instance created by the builder is immutable.

Index

Constants

View Source
const (

	// WildcardsNetworkOnly prints wildcards that are part of the network
	// (only possible when using subnet address notation, otherwise this option is ignored).
	WildcardsNetworkOnly WildcardOption = ""
	// WildcardsAll prints wildcards for any visible (uncompressed) segments.
	WildcardsAll WildcardOption = "allType"
	// ZerosCompression - compress the largest range of zero-segments.
	ZerosCompression CompressionChoiceOptions = "zeros"
	// HostPreferred - if there is a host section, compress the host along with any adjoining zero-segments, otherwise compress a range of zero-segments.
	HostPreferred CompressionChoiceOptions = "host preferred"
	// MixedPreferred - if there is a mixed section that is compressible according to the MixedCompressionOptions, compress the mixed section along with any adjoining zero-segments, otherwise compress a range of zero-segments.
	MixedPreferred CompressionChoiceOptions = "mixed preferred"
	// ZerosOrHost - compress the largest range of zero or host segments.
	ZerosOrHost CompressionChoiceOptions = ""
	// NoMixedCompression - do not allow compression of an IPv4 section.
	NoMixedCompression MixedCompressionOptions = "no mixed compression"
	// MixedCompressionNoHost - allow compression of the IPv4 section when there is no host of the prefixed address.
	MixedCompressionNoHost MixedCompressionOptions = "no host"
	// MixedCompressionCoveredByHost - compress the IPv4 section if it is part of the host of the prefixed address.
	MixedCompressionCoveredByHost MixedCompressionOptions = "covered by host"
	// AllowMixedCompression - allow compression of a the IPv4 section.
	AllowMixedCompression MixedCompressionOptions = ""
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CompressOptions

type CompressOptions interface {
	// GetCompressionChoiceOptions provides CompressionChoiceOptions that determine which null segments should be compressed.
	GetCompressionChoiceOptions() CompressionChoiceOptions
	// GetMixedCompressionOptions provides MixedCompressionOptions options that specify which null segments should be compressed in mixed IPv6/v4 strings.
	GetMixedCompressionOptions() MixedCompressionOptions
	// CompressSingle specifies whether one zero segment should compress itself if there are no other segments to compress.
	CompressSingle() bool
}

CompressOptions specifies how to compress zero-segments in the address or subnet string.

type CompressOptionsBuilder

type CompressOptionsBuilder struct {
	// contains filtered or unexported fields
}

The CompressOptionsBuilder is used to create an immutable CompressOptions instance for IPv6 address strings.

func (*CompressOptionsBuilder) CompressSingle

func (opts *CompressOptionsBuilder) CompressSingle() bool

CompressSingle specifies whether one zero segment should compress itself if there are no other segments to compress.

func (*CompressOptionsBuilder) GetCompressionChoiceOptions

func (opts *CompressOptionsBuilder) GetCompressionChoiceOptions() CompressionChoiceOptions

GetCompressionChoiceOptions provides CompressionChoiceOptions that determine which null segments should be compressed.

func (*CompressOptionsBuilder) GetMixedCompressionOptions

func (opts *CompressOptionsBuilder) GetMixedCompressionOptions() MixedCompressionOptions

GetMixedCompressionOptions provides MixedCompressionOptions options that specify which null segments should be compressed in mixed IPv6/v4 strings.

func (*CompressOptionsBuilder) SetCompressSingle

func (builder *CompressOptionsBuilder) SetCompressSingle(compressSingle bool) *CompressOptionsBuilder

SetCompressSingle determines whether one zero segment should compress itself if there are no other segments to compress.

func (*CompressOptionsBuilder) SetCompressionChoiceOptions

func (builder *CompressOptionsBuilder) SetCompressionChoiceOptions(rangeSelection CompressionChoiceOptions) *CompressOptionsBuilder

SetCompressionChoiceOptions sets the CompressionChoiceOptions that determine which null segments should be compressed.

func (*CompressOptionsBuilder) SetMixedCompressionOptions

func (builder *CompressOptionsBuilder) SetMixedCompressionOptions(compressMixedOptions MixedCompressionOptions) *CompressOptionsBuilder

SetMixedCompressionOptions sets the MixedCompressionOptions parameters that determine which null segments should be compressed in mixed IPv6/v4 strings.

func (*CompressOptionsBuilder) ToOptions

func (builder *CompressOptionsBuilder) ToOptions() CompressOptions

ToOptions returns an immutable instance of CompressOptions.

type CompressionChoiceOptions

type CompressionChoiceOptions string

CompressionChoiceOptions specify which null segments are to be compressed.

func (CompressionChoiceOptions) CompressHost

func (choice CompressionChoiceOptions) CompressHost() bool

CompressHost specifies whether to compress the host with the prefix address.

type IPStringOptions

type IPStringOptions interface {
	StringOptions
	// GetAddressSuffix returns a suffix to be appended to the string.
	// .in-addr.arpa, .ip6.arpa, .ipv6-literal.net are examples of suffixes tacked onto the end of address strings.
	GetAddressSuffix() string
	// GetWildcardOption returns the WildcardOption to use.
	GetWildcardOption() WildcardOption
	// GetZoneSeparator specifies the separator that separates the zone from the address, the default is '%'.
	GetZoneSeparator() string
}

IPStringOptions is an illustrative way to create a specific type of IP address or subnet string.

type IPStringOptionsBuilder

type IPStringOptionsBuilder struct {
	StringOptionsBuilder
	// contains filtered or unexported fields
}

IPStringOptionsBuilder is used to create an immutable IPStringOptions instance for IP address strings.

func (*IPStringOptionsBuilder) GetAddressLabel

func (opts *IPStringOptionsBuilder) GetAddressLabel() string

GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*IPStringOptionsBuilder) GetRadix

func (opts *IPStringOptionsBuilder) GetRadix() int

GetRadix returns the radix used. The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default.

func (*IPStringOptionsBuilder) GetSegmentStrPrefix

func (opts *IPStringOptionsBuilder) GetSegmentStrPrefix() string

GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPStringOptionsBuilder) GetSeparator

func (opts *IPStringOptionsBuilder) GetSeparator() byte

GetSeparator returns a separator that separates address sections, usually ':' or '.'. HasSeparator specifies whether to call this method. By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4.

func (*IPStringOptionsBuilder) GetWildcards

func (opts *IPStringOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns wildcards specified for use in the string.

func (*IPStringOptionsBuilder) HasSeparator

func (opts *IPStringOptionsBuilder) HasSeparator() bool

HasSeparator indicates whether there is a separator. The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default.

func (*IPStringOptionsBuilder) IsExpandedSegments

func (opts *IPStringOptionsBuilder) IsExpandedSegments() bool

IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros.

func (*IPStringOptionsBuilder) IsReverse

func (opts *IPStringOptionsBuilder) IsReverse() bool

IsReverse indicates whether the string segments should be printed in reverse from the usual order, the usual order being most to least significant.

func (*IPStringOptionsBuilder) IsUppercase

func (opts *IPStringOptionsBuilder) IsUppercase() bool

IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters.

func (*IPStringOptionsBuilder) SetAddressLabel

func (builder *IPStringOptionsBuilder) SetAddressLabel(label string) *IPStringOptionsBuilder

SetAddressLabel dictates a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*IPStringOptionsBuilder) SetAddressSuffix

func (builder *IPStringOptionsBuilder) SetAddressSuffix(suffix string) *IPStringOptionsBuilder

SetAddressSuffix dictates a suffix to be appended to the string. .in-addr.arpa, .ip6.arpa, .ipv6-literal.net are examples of suffixes tacked onto the end of address strings.

func (*IPStringOptionsBuilder) SetExpandedSegments

func (builder *IPStringOptionsBuilder) SetExpandedSegments(expandSegments bool) *IPStringOptionsBuilder

SetExpandedSegments dictates whether segments should be expanded to maximal width, typically by using leading zeros.

func (*IPStringOptionsBuilder) SetHasSeparator

func (builder *IPStringOptionsBuilder) SetHasSeparator(has bool) *IPStringOptionsBuilder

SetHasSeparator determines whether there is a separator. By default the IPStringOptionsBuilder is set to false.

func (*IPStringOptionsBuilder) SetRadix

func (builder *IPStringOptionsBuilder) SetRadix(base int) *IPStringOptionsBuilder

SetRadix sets the radix to be used.

func (*IPStringOptionsBuilder) SetReverse

func (builder *IPStringOptionsBuilder) SetReverse(reverse bool) *IPStringOptionsBuilder

SetReverse determines whether to print the line segments in reverse order from the normal order, with the normal order being the order from largest to smallest value.

func (*IPStringOptionsBuilder) SetSegmentStrPrefix

func (builder *IPStringOptionsBuilder) SetSegmentStrPrefix(prefix string) *IPStringOptionsBuilder

SetSegmentStrPrefix dictates a string prefix to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPStringOptionsBuilder) SetSeparator

func (builder *IPStringOptionsBuilder) SetSeparator(separator byte) *IPStringOptionsBuilder

SetSeparator specifies the separator to separate address partitions. HasSeparator specifies whether this separator should be used or not.

func (*IPStringOptionsBuilder) SetUppercase

func (builder *IPStringOptionsBuilder) SetUppercase(uppercase bool) *IPStringOptionsBuilder

SetUppercase determines whether to use uppercase for hexadecimal or other alphabetic radians.

func (*IPStringOptionsBuilder) SetWildcardOption

func (builder *IPStringOptionsBuilder) SetWildcardOption(wildcardOption WildcardOption) *IPStringOptionsBuilder

SetWildcardOption sets the WildcardOption parameter for use in the string.

func (*IPStringOptionsBuilder) SetWildcardOptions

func (builder *IPStringOptionsBuilder) SetWildcardOptions(wildcardOptions WildcardOptions) *IPStringOptionsBuilder

SetWildcardOptions is a convenient method for simultaneously setting both WildcardOption and Wildcards. It overrides previous calls to SetWildcardOption and SetWildcards, and is overridden by subsequent calls to these methods.

func (*IPStringOptionsBuilder) SetWildcards

func (builder *IPStringOptionsBuilder) SetWildcards(wildcards Wildcards) *IPStringOptionsBuilder

SetWildcards defines wildcards to be used in the string.

func (*IPStringOptionsBuilder) SetZoneSeparator

func (builder *IPStringOptionsBuilder) SetZoneSeparator(separator string) *IPStringOptionsBuilder

SetZoneSeparator determines the separator to separate the zone from the address, the default is '%'. Zones only apply to IPv6 addresses, not IPv4 addresses.

func (*IPStringOptionsBuilder) ToOptions

func (builder *IPStringOptionsBuilder) ToOptions() IPStringOptions

ToOptions returns an immutable instance of IPStringOptions constructed by this constructor.

type IPv4StringOptionsBuilder

type IPv4StringOptionsBuilder struct {
	IPStringOptionsBuilder
}

The IPv4StringOptionsBuilder is used to create an immutable IPStringOptions instance for IPv4 address strings.

func (*IPv4StringOptionsBuilder) GetAddressLabel

func (opts *IPv4StringOptionsBuilder) GetAddressLabel() string

GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*IPv4StringOptionsBuilder) GetRadix

func (opts *IPv4StringOptionsBuilder) GetRadix() int

GetRadix returns the radix used. The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default.

func (*IPv4StringOptionsBuilder) GetSegmentStrPrefix

func (opts *IPv4StringOptionsBuilder) GetSegmentStrPrefix() string

GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPv4StringOptionsBuilder) GetSeparator

func (opts *IPv4StringOptionsBuilder) GetSeparator() byte

GetSeparator returns a separator that separates address sections, usually ':' or '.'. HasSeparator specifies whether to call this method. By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4.

func (*IPv4StringOptionsBuilder) GetWildcards

func (opts *IPv4StringOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns wildcards specified for use in the string.

func (*IPv4StringOptionsBuilder) HasSeparator

func (opts *IPv4StringOptionsBuilder) HasSeparator() bool

HasSeparator indicates whether there is a separator. The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default.

func (*IPv4StringOptionsBuilder) IsExpandedSegments

func (opts *IPv4StringOptionsBuilder) IsExpandedSegments() bool

IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros.

func (*IPv4StringOptionsBuilder) IsReverse

func (opts *IPv4StringOptionsBuilder) IsReverse() bool

IsReverse indicates whether the string segments should be printed in reverse from the usual order, the usual order being most to least significant.

func (*IPv4StringOptionsBuilder) IsUppercase

func (opts *IPv4StringOptionsBuilder) IsUppercase() bool

IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters.

func (*IPv4StringOptionsBuilder) SetAddressLabel

func (builder *IPv4StringOptionsBuilder) SetAddressLabel(label string) *IPv4StringOptionsBuilder

SetAddressLabel dictates a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*IPv4StringOptionsBuilder) SetAddressSuffix

func (builder *IPv4StringOptionsBuilder) SetAddressSuffix(suffix string) *IPv4StringOptionsBuilder

SetAddressSuffix dictates a suffix to be appended to the string. .in-addr.arpa, .ip6.arpa, .ipv6-literal.net are examples of suffixes tacked onto the end of address strings.

func (*IPv4StringOptionsBuilder) SetExpandedSegments

func (builder *IPv4StringOptionsBuilder) SetExpandedSegments(expandSegments bool) *IPv4StringOptionsBuilder

SetExpandedSegments determines whether segments should be expanded to their maximum width, usually with leading zeros.

func (*IPv4StringOptionsBuilder) SetHasSeparator

func (builder *IPv4StringOptionsBuilder) SetHasSeparator(has bool) *IPv4StringOptionsBuilder

SetHasSeparator dictates whether there is a separator. The default for IPv4 is true.

func (*IPv4StringOptionsBuilder) SetRadix

func (builder *IPv4StringOptionsBuilder) SetRadix(base int) *IPv4StringOptionsBuilder

SetRadix sets the radix to be used.

func (*IPv4StringOptionsBuilder) SetReverse

func (builder *IPv4StringOptionsBuilder) SetReverse(reverse bool) *IPv4StringOptionsBuilder

SetReverse determines whether to print the line segments in reverse order from the normal order, with the normal order being the order from largest to smallest value.

func (*IPv4StringOptionsBuilder) SetSegmentStrPrefix

func (builder *IPv4StringOptionsBuilder) SetSegmentStrPrefix(prefix string) *IPv4StringOptionsBuilder

SetSegmentStrPrefix dictates a string prefix to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPv4StringOptionsBuilder) SetSeparator

func (builder *IPv4StringOptionsBuilder) SetSeparator(separator byte) *IPv4StringOptionsBuilder

SetSeparator defines a separator to separate parts of the address, for IPv4 the default is '.'. HasSeparator specifies whether to use this separator or not.

func (*IPv4StringOptionsBuilder) SetUppercase

func (builder *IPv4StringOptionsBuilder) SetUppercase(uppercase bool) *IPv4StringOptionsBuilder

SetUppercase determines whether to use uppercase for hexadecimal or other alphabetic radians.

func (*IPv4StringOptionsBuilder) SetWildcardOption

func (builder *IPv4StringOptionsBuilder) SetWildcardOption(wildcardOption WildcardOption) *IPv4StringOptionsBuilder

SetWildcardOption sets the WildcardOption parameter for use in the string.

func (*IPv4StringOptionsBuilder) SetWildcardOptions

func (builder *IPv4StringOptionsBuilder) SetWildcardOptions(wildcardOptions WildcardOptions) *IPv4StringOptionsBuilder

SetWildcardOptions is a convenient method for simultaneously setting both WildcardOption and Wildcards. It overrides previous calls to SetWildcardOption and SetWildcards, and is overridden by subsequent calls to these methods.

func (*IPv4StringOptionsBuilder) SetWildcards

func (builder *IPv4StringOptionsBuilder) SetWildcards(wildcards Wildcards) *IPv4StringOptionsBuilder

SetWildcards defines wildcards to be used in the string.

func (*IPv4StringOptionsBuilder) ToOptions

func (builder *IPv4StringOptionsBuilder) ToOptions() IPStringOptions

ToOptions returns an immutable IPStringOptions instance built by this builder.

type IPv6StringOptions

type IPv6StringOptions interface {
	IPStringOptions
	// GetIPv4Opts returns the parameters used to create an embedded IPv4 address string in a mixed IPv6 address,
	// which is taken from the last 32 bits of the IPv6 address.
	// For example: "a:b:c:d:e:f:1.2.3.4".
	GetIPv4Opts() IPStringOptions
	// GetCompressOptions returns CompressOptions parameters that specify how to compress null segments in an IPv6 address string or subnet.
	GetCompressOptions() CompressOptions
	// IsSplitDigits specifies whether each digit is separated from each other by separators.
	// If separated, this parameter is ignored.
	// Can produce address_error.IncompatibleAddressError for ranged series.
	IsSplitDigits() bool
	// IsMixed specifies that the last two segments of the IPv6 address should be printed as IPv4 address, resulting in a mixed IPv6/v4 string.
	// Can produce address_error.IncompatibleAddressError for ranges in the IPv4 part of the series.
	IsMixed() bool
}

IPv6StringOptions provides a clear way to create a specific type of IPv6 address string.

type IPv6StringOptionsBuilder

type IPv6StringOptionsBuilder struct {
	IPStringOptionsBuilder
	// contains filtered or unexported fields
}

IPv6StringOptionsBuilder is used to create an immutable IPv6StringOptions instance for IPv6 address strings.

func (*IPv6StringOptionsBuilder) GetAddressLabel

func (opts *IPv6StringOptionsBuilder) GetAddressLabel() string

GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*IPv6StringOptionsBuilder) GetCompressOptions

func (builder *IPv6StringOptionsBuilder) GetCompressOptions() CompressOptions

GetCompressOptions returns CompressOptions parameters that specify how to compress null segments in an IPv6 address string or subnet.

func (*IPv6StringOptionsBuilder) GetIPv4Opts

func (builder *IPv6StringOptionsBuilder) GetIPv4Opts() IPStringOptions

GetIPv4Opts returns the IPv4 string options to be used in the IPv4 address section of a mixed IPv6/v4 string.

func (*IPv6StringOptionsBuilder) GetRadix

func (opts *IPv6StringOptionsBuilder) GetRadix() int

GetRadix returns the radix used. The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default.

func (*IPv6StringOptionsBuilder) GetSegmentStrPrefix

func (opts *IPv6StringOptionsBuilder) GetSegmentStrPrefix() string

GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPv6StringOptionsBuilder) GetSeparator

func (opts *IPv6StringOptionsBuilder) GetSeparator() byte

GetSeparator returns a separator that separates address sections, usually ':' or '.'. HasSeparator specifies whether to call this method. By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4.

func (*IPv6StringOptionsBuilder) GetWildcards

func (opts *IPv6StringOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns wildcards specified for use in the string.

func (*IPv6StringOptionsBuilder) HasSeparator

func (opts *IPv6StringOptionsBuilder) HasSeparator() bool

HasSeparator indicates whether there is a separator. The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default.

func (*IPv6StringOptionsBuilder) IsExpandedSegments

func (opts *IPv6StringOptionsBuilder) IsExpandedSegments() bool

IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros.

func (*IPv6StringOptionsBuilder) IsMixed

func (builder *IPv6StringOptionsBuilder) IsMixed() bool

IsMixed specifies whether the last two segments of the IPv6 address should be printed as IPv4 address, resulting in a mixed IPv6/v4 string.

func (*IPv6StringOptionsBuilder) IsReverse

func (opts *IPv6StringOptionsBuilder) IsReverse() bool

IsReverse indicates whether the string segments should be printed in reverse from the usual order, the usual order being most to least significant.

func (*IPv6StringOptionsBuilder) IsUppercase

func (opts *IPv6StringOptionsBuilder) IsUppercase() bool

IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters.

func (*IPv6StringOptionsBuilder) SetAddressSuffix

func (builder *IPv6StringOptionsBuilder) SetAddressSuffix(suffix string) *IPv6StringOptionsBuilder

SetAddressSuffix determines the suffix to be added to the string. .in-addr.arpa, .ip6.arpa, .ipv6-literal.net are examples of suffixes added to the end of address strings.

func (*IPv6StringOptionsBuilder) SetCompressOptions

func (builder *IPv6StringOptionsBuilder) SetCompressOptions(compressOptions CompressOptions) *IPv6StringOptionsBuilder

SetCompressOptions sets the CompressOptions parameters, which determine how to compress null segments in the IPv6 address string or subnet.

func (*IPv6StringOptionsBuilder) SetExpandedSegments

func (builder *IPv6StringOptionsBuilder) SetExpandedSegments(expandSegments bool) *IPv6StringOptionsBuilder

SetExpandedSegments determines whether segments should be expanded to their maximum width, usually with leading zeros.

func (*IPv6StringOptionsBuilder) SetHasSeparator

func (builder *IPv6StringOptionsBuilder) SetHasSeparator(has bool) *IPv6StringOptionsBuilder

SetHasSeparator determines whether there is a separator. The default for IPv6 is true.

func (*IPv6StringOptionsBuilder) SetMixed

func (builder *IPv6StringOptionsBuilder) SetMixed(makeMixed bool) *IPv6StringOptionsBuilder

SetMixed determines whether the string should be a mixed IPv6/v4 string in which the last two segments of the IPv6 address should be printed as an IPv4 address.

func (*IPv6StringOptionsBuilder) SetMixedOptions

func (builder *IPv6StringOptionsBuilder) SetMixedOptions(ipv4Options IPStringOptions) *IPv6StringOptionsBuilder

SetMixedOptions provides the IPv4 options to be used in the IPv4 mixed string section. Calling this method sets the string as an IPv6/v4 mixed string.

func (*IPv6StringOptionsBuilder) SetRadix

func (builder *IPv6StringOptionsBuilder) SetRadix(base int) *IPv6StringOptionsBuilder

SetRadix sets the radix to be used.

func (*IPv6StringOptionsBuilder) SetReverse

func (builder *IPv6StringOptionsBuilder) SetReverse(reverse bool) *IPv6StringOptionsBuilder

SetReverse determines whether to print the line segments in reverse order from the normal order, with the normal order being the order from largest to smallest value.

func (*IPv6StringOptionsBuilder) SetSegmentStrPrefix

func (builder *IPv6StringOptionsBuilder) SetSegmentStrPrefix(prefix string) *IPv6StringOptionsBuilder

SetSegmentStrPrefix dictates a string prefix to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*IPv6StringOptionsBuilder) SetSeparator

func (builder *IPv6StringOptionsBuilder) SetSeparator(separator byte) *IPv6StringOptionsBuilder

SetSeparator defines a separator to separate parts of the address, for IPv6 the default is ':'. HasSeparator specifies whether to use this separator or not.

func (*IPv6StringOptionsBuilder) SetSplitDigits

func (builder *IPv6StringOptionsBuilder) SetSplitDigits(splitDigits bool) *IPv6StringOptionsBuilder

SetSplitDigits determines whether to separate each digit from each other with separators. When mixed, this parameter is ignored.

func (*IPv6StringOptionsBuilder) SetUppercase

func (builder *IPv6StringOptionsBuilder) SetUppercase(upper bool) *IPv6StringOptionsBuilder

SetUppercase determines whether to use uppercase for hexadecimal or other alphabetic radians.

func (*IPv6StringOptionsBuilder) SetWildcardOption

func (builder *IPv6StringOptionsBuilder) SetWildcardOption(wildcardOption WildcardOption) *IPv6StringOptionsBuilder

SetWildcardOption sets the WildcardOption parameter for use in the string.

func (*IPv6StringOptionsBuilder) SetWildcardOptions

func (builder *IPv6StringOptionsBuilder) SetWildcardOptions(wildcardOptions WildcardOptions) *IPv6StringOptionsBuilder

SetWildcardOptions is a convenient method for simultaneously setting WildcardOption and Wildcards. It overrides previous calls to SetWildcardOption and SetWildcards and is overridden by subsequent calls to these methods.

func (*IPv6StringOptionsBuilder) SetWildcards

func (builder *IPv6StringOptionsBuilder) SetWildcards(wildcards Wildcards) *IPv6StringOptionsBuilder

SetWildcards defines wildcards to be used in the string.

func (*IPv6StringOptionsBuilder) SetZoneSeparator

func (builder *IPv6StringOptionsBuilder) SetZoneSeparator(separator string) *IPv6StringOptionsBuilder

SetZoneSeparator determines the separator to separate the zone from the address, the default is '%'.

func (*IPv6StringOptionsBuilder) ToOptions

func (builder *IPv6StringOptionsBuilder) ToOptions() IPv6StringOptions

ToOptions returns an immutable instance of IPv6StringOptions constructed by this constructor.

type MACStringOptionsBuilder

type MACStringOptionsBuilder struct {
	StringOptionsBuilder
}

MACStringOptionsBuilder creates an immutable StringOptions instance for MAC address strings.

func (*MACStringOptionsBuilder) GetAddressLabel

func (opts *MACStringOptionsBuilder) GetAddressLabel() string

GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*MACStringOptionsBuilder) GetRadix

func (opts *MACStringOptionsBuilder) GetRadix() int

GetRadix returns the radix used. The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default.

func (*MACStringOptionsBuilder) GetSegmentStrPrefix

func (opts *MACStringOptionsBuilder) GetSegmentStrPrefix() string

GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*MACStringOptionsBuilder) GetSeparator

func (opts *MACStringOptionsBuilder) GetSeparator() byte

GetSeparator returns a separator that separates address sections, usually ':' or '.'. HasSeparator specifies whether to call this method. By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4.

func (*MACStringOptionsBuilder) GetWildcards

func (opts *MACStringOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns wildcards specified for use in the string.

func (*MACStringOptionsBuilder) HasSeparator

func (opts *MACStringOptionsBuilder) HasSeparator() bool

HasSeparator indicates whether there is a separator. The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default.

func (*MACStringOptionsBuilder) IsExpandedSegments

func (opts *MACStringOptionsBuilder) IsExpandedSegments() bool

IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros.

func (*MACStringOptionsBuilder) IsReverse

func (opts *MACStringOptionsBuilder) IsReverse() bool

IsReverse indicates whether the string segments should be printed in reverse from the usual order, the usual order being most to least significant.

func (*MACStringOptionsBuilder) IsUppercase

func (opts *MACStringOptionsBuilder) IsUppercase() bool

IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters.

func (*MACStringOptionsBuilder) SetAddressLabel

func (builder *MACStringOptionsBuilder) SetAddressLabel(label string) *MACStringOptionsBuilder

SetAddressLabel dictates a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*MACStringOptionsBuilder) SetExpandedSegments

func (builder *MACStringOptionsBuilder) SetExpandedSegments(expandSegments bool) *MACStringOptionsBuilder

SetExpandedSegments determines whether segments should be expanded to their maximum width, usually with leading zeros.

func (*MACStringOptionsBuilder) SetHasSeparator

func (builder *MACStringOptionsBuilder) SetHasSeparator(has bool) *MACStringOptionsBuilder

SetHasSeparator determines whether there is a separator. The default for MAC is true.

func (*MACStringOptionsBuilder) SetRadix

func (builder *MACStringOptionsBuilder) SetRadix(base int) *MACStringOptionsBuilder

SetRadix sets the radix in use.

func (*MACStringOptionsBuilder) SetReverse

func (builder *MACStringOptionsBuilder) SetReverse(reverse bool) *MACStringOptionsBuilder

SetReverse determines whether to print line segments in reverse order from the normal order, with the normal order being from largest to smallest value.

func (*MACStringOptionsBuilder) SetSegmentStrPrefix

func (builder *MACStringOptionsBuilder) SetSegmentStrPrefix(prefix string) *MACStringOptionsBuilder

SetSegmentStrPrefix dictates a string prefix to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*MACStringOptionsBuilder) SetSeparator

func (builder *MACStringOptionsBuilder) SetSeparator(separator byte) *MACStringOptionsBuilder

SetSeparator specifies the separator for address partitions, for MAC the default is ':'. HasSeparator specifies whether to use this separator or not.

func (*MACStringOptionsBuilder) SetUppercase

func (builder *MACStringOptionsBuilder) SetUppercase(uppercase bool) *MACStringOptionsBuilder

SetUppercase determines whether to use uppercase for hexadecimal or other alphabetic radians.

func (*MACStringOptionsBuilder) SetWildcards

func (builder *MACStringOptionsBuilder) SetWildcards(wildcards Wildcards) *MACStringOptionsBuilder

SetWildcards defines wildcards to be used in the string.

func (*MACStringOptionsBuilder) ToOptions

func (builder *MACStringOptionsBuilder) ToOptions() StringOptions

ToOptions returns an immutable StringOptions instance built by this constructor.

type MixedCompressionOptions

type MixedCompressionOptions string

MixedCompressionOptions specify which null segments should be compressed in mixed IPv6/v4 strings.

type StringOptions

type StringOptions interface {
	// GetWildcards returns wildcards specified for use in the string
	GetWildcards() Wildcards
	// IsReverse indicates whether the string segments should be printed in reverse from the usual order,
	// the usual order being most to least significant
	IsReverse() bool
	// IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters
	IsUppercase() bool
	// IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros
	IsExpandedSegments() bool
	// GetRadix returns the radix used.
	// The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default
	GetRadix() int
	// GetSeparator returns a separator that separates address sections, usually ':' or '.'.  HasSeparator specifies whether to call this method.
	// By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4
	GetSeparator() byte
	// HasSeparator indicates whether there is a separator.
	// The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default
	HasSeparator() bool
	// GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix
	GetAddressLabel() string
	// GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix
	GetSegmentStrPrefix() string
}

StringOptions represents a clear way to create a specific type of string.

type StringOptionsBuilder

type StringOptionsBuilder struct {
	// contains filtered or unexported fields
}

StringOptionsBuilder is used to create an immutable StringOptions instance.

func (*StringOptionsBuilder) GetAddressLabel

func (opts *StringOptionsBuilder) GetAddressLabel() string

GetAddressLabel returns a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*StringOptionsBuilder) GetRadix

func (opts *StringOptionsBuilder) GetRadix() int

GetRadix returns the radix used. The default is hexadecimal, unless the IPv4 option builder is used, in which case decimal is the default.

func (*StringOptionsBuilder) GetSegmentStrPrefix

func (opts *StringOptionsBuilder) GetSegmentStrPrefix() string

GetSegmentStrPrefix returns a string prefix (if any) to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*StringOptionsBuilder) GetSeparator

func (opts *StringOptionsBuilder) GetSeparator() byte

GetSeparator returns a separator that separates address sections, usually ':' or '.'. HasSeparator specifies whether to call this method. By default, there is no separator unless the MAC, IPv6, or IPv4 option builder is used, in which case the separator is ':' for MAC and IPv6 and '.' for IPv4.

func (*StringOptionsBuilder) GetWildcards

func (opts *StringOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns wildcards specified for use in the string.

func (*StringOptionsBuilder) HasSeparator

func (opts *StringOptionsBuilder) HasSeparator() bool

HasSeparator indicates whether there is a separator. The default is false, with no separator, unless using the MAC, IPv6 or IPv4 option builder, in which case there is a separator by default.

func (*StringOptionsBuilder) IsExpandedSegments

func (opts *StringOptionsBuilder) IsExpandedSegments() bool

IsExpandedSegments returns whether segments should be expanded to their maximum width, usually with leading zeros.

func (*StringOptionsBuilder) IsReverse

func (opts *StringOptionsBuilder) IsReverse() bool

IsReverse indicates whether the string segments should be printed in reverse from the usual order, the usual order being most to least significant.

func (*StringOptionsBuilder) IsUppercase

func (opts *StringOptionsBuilder) IsUppercase() bool

IsUppercase specifies whether to use uppercase for hexadecimal or other radians with alphabetic characters.

func (*StringOptionsBuilder) SetAddressLabel

func (builder *StringOptionsBuilder) SetAddressLabel(label string) *StringOptionsBuilder

SetAddressLabel dictates a string to add to the entire address string, such as an octal, hexadecimal or binary prefix.

func (*StringOptionsBuilder) SetExpandedSegments

func (builder *StringOptionsBuilder) SetExpandedSegments(expandSegments bool) *StringOptionsBuilder

SetExpandedSegments determines whether segments should be expanded to their maximum width, usually with leading zeros.

func (*StringOptionsBuilder) SetHasSeparator

func (builder *StringOptionsBuilder) SetHasSeparator(has bool) *StringOptionsBuilder

SetHasSeparator determines whether the separator is present. The default is false, with no separator, unless the MAC, IPv6 or IPv4 option builder is used, in which case the separator is present by default.

func (*StringOptionsBuilder) SetRadix

func (builder *StringOptionsBuilder) SetRadix(base int) *StringOptionsBuilder

SetRadix sets the radix in use.

func (*StringOptionsBuilder) SetReverse

func (builder *StringOptionsBuilder) SetReverse(reverse bool) *StringOptionsBuilder

SetReverse determines whether to print the line segments in reverse order from the normal order, with the normal order being the order from largest to smallest value.

func (*StringOptionsBuilder) SetSegmentStrPrefix

func (builder *StringOptionsBuilder) SetSegmentStrPrefix(prefix string) *StringOptionsBuilder

SetSegmentStrPrefix dictates a string prefix to add to each segment value, such as an octal, hexadecimal, or binary prefix.

func (*StringOptionsBuilder) SetSeparator

func (builder *StringOptionsBuilder) SetSeparator(separator byte) *StringOptionsBuilder

SetSeparator defines a separator to separate address partitions, usually ':' or '.'. HasSeparator specifies whether this separator should be used or not.

func (*StringOptionsBuilder) SetUppercase

func (builder *StringOptionsBuilder) SetUppercase(uppercase bool) *StringOptionsBuilder

SetUppercase determines whether to use uppercase for hexadecimal or other alphabetic radians.

func (*StringOptionsBuilder) SetWildcards

func (builder *StringOptionsBuilder) SetWildcards(wildcards Wildcards) *StringOptionsBuilder

SetWildcards defines wildcards to be used in the string.

func (*StringOptionsBuilder) ToOptions

func (builder *StringOptionsBuilder) ToOptions() StringOptions

ToOptions returns an immutable StringOptions instance built by this constructor.

type WildcardOption

type WildcardOption string

WildcardOption specifies parameters that specify when and where to use wildcards.

type WildcardOptions

type WildcardOptions interface {
	GetWildcardOption() WildcardOption // returns the used WildcardOption parameter
	GetWildcards() Wildcards           // returns the wildcard characters to be used.
}

WildcardOptions specifies parameters that specify when and where to use wildcards, and which wildcards to use.

type WildcardOptionsBuilder

type WildcardOptionsBuilder struct {
	// contains filtered or unexported fields
}

WildcardOptionsBuilder is used to create an immutable WildcardOptions instance for address strings.

func (*WildcardOptionsBuilder) GetWildcardOption

func (opts *WildcardOptionsBuilder) GetWildcardOption() WildcardOption

GetWildcardOption returns the WildcardOption parameter used.

func (*WildcardOptionsBuilder) GetWildcards

func (opts *WildcardOptionsBuilder) GetWildcards() Wildcards

GetWildcards returns the wildcards to be used.

func (*WildcardOptionsBuilder) SetWildcardOptions

func (builder *WildcardOptionsBuilder) SetWildcardOptions(wildcardOption WildcardOption) *WildcardOptionsBuilder

SetWildcardOptions defines the WildcardOption to use.

func (*WildcardOptionsBuilder) SetWildcards

func (builder *WildcardOptionsBuilder) SetWildcards(wildcards Wildcards) *WildcardOptionsBuilder

SetWildcards dictates the wildcards to use.

func (*WildcardOptionsBuilder) ToOptions

func (builder *WildcardOptionsBuilder) ToOptions() WildcardOptions

ToOptions returns an immutable instance of WildcardOptions constructed by this constructor.

type Wildcards

type Wildcards interface {
	// GetRangeSeparator returns the wildcard used to separate the lower and upper bound (inclusive) of a range of values.
	// If it is not specified, it defaults to RangeSeparatorStr, which is a hyphen '-'.
	GetRangeSeparator() string
	// GetWildcard returns the wildcard used to represent any legitimate value, which by default is an asterisk '*'.
	GetWildcard() string
	// GetSingleWildcard returns the wildcard used to represent any single digit, which by default is the underscore character '_'.
	GetSingleWildcard() string
}

Wildcards determines the wildcards to use when constructing an address string. WildcardsBuilder can be used to create a Wildcards instance.

var (
	// DefaultWildcards is the default Wildcards instance, using '-' and '*' as range separator and wildcard.
	DefaultWildcards Wildcards = &wildcards{rangeSeparator: rangeSeparatorStr, wildcard: segmentWildcardStr}
)

type WildcardsBuilder

type WildcardsBuilder struct {
	// contains filtered or unexported fields
}

WildcardsBuilder builds an instance of Wildcards.

func (*WildcardsBuilder) GetRangeSeparator

func (wildcards *WildcardsBuilder) GetRangeSeparator() string

GetRangeSeparator returns the wildcard used to separate the lower and upper bound (inclusive) of a range of values. If it is not specified, it defaults to RangeSeparatorStr, which is a hyphen '-'.

func (*WildcardsBuilder) GetSingleWildcard

func (wildcards *WildcardsBuilder) GetSingleWildcard() string

GetSingleWildcard returns the wildcard used to represent any single digit, which by default is the underscore character '_'.

func (*WildcardsBuilder) GetWildcard

func (wildcards *WildcardsBuilder) GetWildcard() string

GetWildcard returns the wildcard used to represent any legitimate value, which by default is an asterisk '*'.

func (*WildcardsBuilder) SetRangeSeparator

func (wildcards *WildcardsBuilder) SetRangeSeparator(str string) *WildcardsBuilder

SetRangeSeparator sets the wildcard used to separate the lower and upper bound (inclusive) of a range of values. If not set, it defaults to RangeSeparatorStr, which is a hyphen '-'.

func (*WildcardsBuilder) SetSingleWildcard

func (wildcards *WildcardsBuilder) SetSingleWildcard(str string) *WildcardsBuilder

SetSingleWildcard sets the wildcard used to represent any single digit, which by default is the underscore character '_'.

func (*WildcardsBuilder) SetWildcard

func (wildcards *WildcardsBuilder) SetWildcard(str string) *WildcardsBuilder

SetWildcard sets the wildcard used to represent any legitimate value, the default is an asterisk '*'.

func (*WildcardsBuilder) ToWildcards

func (wildcards *WildcardsBuilder) ToWildcards() Wildcards

ToWildcards returns an immutable Wildcards instance built by this builder.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL