# Packages

Package fsmtool contains tools for creating FSMs, particularly transitioning between states.

# Functions

FindLoopbackIPv4Interface finds the IPv4 loopback interface.
FindPublicIPv4 returns the public IPv4 address of the.
FreeTCPPort returns a free TCP port by using net.ListenTCP on port :0.
FreeUDPPort returns a free UDP port by using net.ListenUDP on port :0.
GetGRPCDialOpts returns dial options for a gRPC client based on the client parameters.
NewStringSet creates a new string set instance.
NewZeroconfRegistry creates a new zeroconf server.
PortOfHostPort returns the port number for the host:port string.
RandomID returns a random ID.
RandomLocalEndpoint returns a random endpoint on the loppback interface.
RandomPublicEndpoint returns a random public endpoint on the host.
TimeCall times the call and prints out the execution time in milliseconds in the go standard log.
WaitForCtrlC waits for an interrupt signal.

# Structs

ConsoleProgress prints an 80-character progress bar on the console for values between [0, Max].
GRPCClientParam is a parameter struct for gRPC clients.
StringSet is a collection of nodes.
ZeroconfRegistry is the type for a zeroconf registry.