Documentation ¶
Index ¶
- func CaddyfileUnmarshaler[T any, TP caddyfileUnmarshaler[T]](name string) func(d *caddyfile.Dispenser, resume any) (any, error)
- type CaddyTextUnmarshaler
- func (c CaddyTextUnmarshaler[V, T, TP]) MarshalJSON() (text []byte, err error)
- func (c CaddyTextUnmarshaler[V, T, TP]) MarshalText() (text []byte, err error)
- func (c *CaddyTextUnmarshaler[V, T, TP]) UnmarshalCaddyfile(d *caddyfile.Dispenser) error
- func (c *CaddyTextUnmarshaler[V, T, TP]) UnmarshalJSON(text []byte) error
- func (c *CaddyTextUnmarshaler[V, T, TP]) UnmarshalText(text []byte) error
- func (c *CaddyTextUnmarshaler[V, T, TP]) Value() V
- type Hostname
- type IP
- type Port
- type PortPair
- type PortPairValue
- type Protocol
- type String
- type UDPAddr
- type Value
- type ValueBool
- type ValueIP
- type ValuePortPair
- type ValueProtocol
- type ValueString
- type ValueUDPAddr
- type ValueUnsigned
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CaddyfileUnmarshaler ¶
func CaddyfileUnmarshaler[T any, TP caddyfileUnmarshaler[T]](name string) func(d *caddyfile.Dispenser, resume any) (any, error)
CaddyfileUnmarshaler returns a function that unmarshals Caddyfile configuration into a specific type. It works with types T whose pointer implements the caddyfile.Unmarshaler interface. The function handles both the initialization of a new configuration object and the resumption of a partially-unmarshaled configuration. This is useful if the caddyfile.App manages a list of submodules and whose caddyfile.Unmarshaler will mainly just append to that list.
Types ¶
type CaddyTextUnmarshaler ¶
type CaddyTextUnmarshaler[V, T any, TP valueConstraint[V, T]] struct { // contains filtered or unexported fields }
CaddyTextUnmarshaler is a generic struct for unmarshaling text into a value. It stores the unmarshaled value and the original text representation.
func (CaddyTextUnmarshaler[V, T, TP]) MarshalJSON ¶
MarshalJSON marshals the CaddyTextUnmarshaler into JSON. It quotes the text if it's not valid JSON.
func (CaddyTextUnmarshaler[V, T, TP]) MarshalText ¶
MarshalText marshals the CaddyTextUnmarshaler back to text. It returns the original text representation.
func (*CaddyTextUnmarshaler[V, T, TP]) UnmarshalCaddyfile ¶
UnmarshalCaddyfile reads the next arg as a string and unmarshalls it
func (*CaddyTextUnmarshaler[V, T, TP]) UnmarshalJSON ¶
UnmarshalJSON unmarshals JSON into the CaddyTextUnmarshaler's value. It handles JSON strings and unmarshals them as text.
func (*CaddyTextUnmarshaler[V, T, TP]) UnmarshalText ¶
UnmarshalText unmarshals text into the CaddyTextUnmarshaler's value. It uses Caddy's replacer for variable expansion in the text before unmarshaling. The value and the stored text are reset when this is called, even if unmarshalling fails.
func (*CaddyTextUnmarshaler[V, T, TP]) Value ¶
func (c *CaddyTextUnmarshaler[V, T, TP]) Value() V
Value returns the underlying value of the CaddyTextUnmarshaler.
type IP ¶
IP is a type alias for handling IP addresses. It wraps the net.IP type and uses CaddyTextUnmarshaler for converting text-based IPv4 or IPv6 address representations into net.IP.
type Port ¶
type Port = CaddyTextUnmarshaler[uint16, ValueUnsigned[uint16], *ValueUnsigned[uint16]]
Port defines a network port value, which is an unsigned 16-bit integer. The validity of 0 as a port number depends on the specific use case or context.
type PortPair ¶
type PortPair = CaddyTextUnmarshaler[*PortPairValue, ValuePortPair, *ValuePortPair]
PortPair represents a structured combination of ports and, optionally, their host and protocol, formatted as [<host>:]<src>:<dst>[/<tcp|udp>].
type PortPairValue ¶
func (*PortPairValue) ToCaddyAddr ¶
func (pp *PortPairValue) ToCaddyAddr() caddy.NetworkAddress
type Protocol ¶
type Protocol = CaddyTextUnmarshaler[string, ValueProtocol, *ValueProtocol]
These are convenience types that may be used in configurations.
type String ¶
type String = CaddyTextUnmarshaler[string, ValueString, *ValueString]
String is a custom type leveraging CaddyTextUnmarshaler to handle text-based data. It allows caddy's replacer to replace the string before it is used.
type UDPAddr ¶
type UDPAddr = CaddyTextUnmarshaler[*net.UDPAddr, ValueUDPAddr, *ValueUDPAddr]
UDPAddr is a type alias for handling UDP network addresses. It wraps the net.UDPAddr type and utilizes CaddyTextUnmarshaler for parsing and handling UDP addresses in text form.
type Value ¶
type Value[V any] interface { encoding.TextUnmarshaler Value() V Reset() }
Value is an interface for types that can unmarshal text and return a value.
type ValueBool ¶
type ValueBool bool
ValueBool handles unmarshalling bool values.
func (*ValueBool) UnmarshalText ¶
UnmarshalText parses the bool with strconv.ParseBool internally.
type ValueIP ¶
ValueIP handles unmarshalling net.IP.
func (*ValueIP) UnmarshalText ¶
UnmarshalText implements the unmarshaling of text data into an IP address. It delegates to the encoding.TextUnmarshaler implementation of net.IP.
type ValuePortPair ¶
type ValuePortPair struct {
// contains filtered or unexported fields
}
func (*ValuePortPair) Reset ¶
func (pp *ValuePortPair) Reset()
func (*ValuePortPair) UnmarshalText ¶
func (pp *ValuePortPair) UnmarshalText(b []byte) error
func (*ValuePortPair) Value ¶
func (pp *ValuePortPair) Value() *PortPairValue
type ValueProtocol ¶
type ValueProtocol string
func (*ValueProtocol) Reset ¶
func (p *ValueProtocol) Reset()
func (*ValueProtocol) UnmarshalText ¶
func (p *ValueProtocol) UnmarshalText(text []byte) error
func (*ValueProtocol) Value ¶
func (p *ValueProtocol) Value() string
type ValueString ¶
type ValueString string
ValueString handles unmarshalling string values.
func (*ValueString) Reset ¶
func (s *ValueString) Reset()
func (*ValueString) UnmarshalText ¶
func (s *ValueString) UnmarshalText(b []byte) error
UnmarshalText just sets the value to string(b).
func (*ValueString) Value ¶
func (s *ValueString) Value() string
Value returns the underlying string value of ValueString.
type ValueUDPAddr ¶
ValueUDPAddr handles unmarshalling a net.UDPAddr.
func (*ValueUDPAddr) Reset ¶
func (addr *ValueUDPAddr) Reset()
func (*ValueUDPAddr) UnmarshalText ¶
func (addr *ValueUDPAddr) UnmarshalText(text []byte) error
UnmarshalText implements the unmarshaling of text data into a UDP address. It resolves the text using net.ResolveUDPAddr.
func (*ValueUDPAddr) Value ¶
func (addr *ValueUDPAddr) Value() *net.UDPAddr
Value returns the underlying net.UDPAddr of ValueUDPAddr.
type ValueUnsigned ¶
type ValueUnsigned[N constraints.Unsigned] struct{ V N }
ValueUnsigned is a generic type for unmarshalling an unsigned number. N must be an unsigned type (e.g., uint, uint32).
func (*ValueUnsigned[N]) Reset ¶
func (n *ValueUnsigned[N]) Reset()
func (*ValueUnsigned[N]) UnmarshalText ¶
func (n *ValueUnsigned[N]) UnmarshalText(b []byte) error
UnmarshalText parses the uint with strconv.ParseUint internally.
func (*ValueUnsigned[N]) Value ¶
func (n *ValueUnsigned[N]) Value() N
Value returns the underlying unsigned number of ValueUnsigned.