Documentation ¶
Overview ¶
Package strfmt contains custom string formats
TODO: add info on how to define and register a custom format
Index ¶
- Constants
- Variables
- func DefaultNameNormalizer(name string) string
- func IsDate(str string) bool
- func IsDateTime(str string) bool
- func IsDuration(str string) bool
- func IsHostname(str string) bool
- func IsStrictURI(str string) bool
- func ParseDuration(cand string) (time.Duration, error)
- type Base64
- type CreditCard
- type Date
- type DateTime
- type Duration
- type Email
- type Format
- type HexColor
- type Hostname
- type IPv4
- type IPv6
- type ISBN
- type ISBN10
- type ISBN13
- type NameNormalizer
- type Password
- type RGBColor
- type Registry
- type SSN
- type URI
- type UUID
- type UUID3
- type UUID4
- type UUID5
- type Validator
Constants ¶
const ( // RFC3339FullDate represents a full-date as specified by RFC3339 // See: http://goo.gl/xXOvVd RFC3339FullDate = "2006-01-02" // DatePattern pattern to match for the date format from http://tools.ietf.org/html/rfc3339#section-5.6 DatePattern = `^([0-9]{4})-([0-9]{2})-([0-9]{2})` )
const ( // RFC3339Millis represents a ISO8601 format to millis instead of to nanos RFC3339Millis = "2006-01-02T15:04:05.000Z07:00" // DateTimePattern pattern to match for the date-time format from http://tools.ietf.org/html/rfc3339#section-5.6 DateTimePattern = `^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$` )
const ( // HostnamePattern http://json-schema.org/latest/json-schema-validation.html#anchor114 // A string instance is valid against this attribute if it is a valid // representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. // http://tools.ietf.org/html/rfc1034#section-3.5 // <digit> ::= any one of the ten digits 0 through 9 // var digit = /[0-9]/; // <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case // var letter = /[a-zA-Z]/; // <let-dig> ::= <letter> | <digit> // var letDig = /[0-9a-zA-Z]/; // <let-dig-hyp> ::= <let-dig> | "-" // var letDigHyp = /[-0-9a-zA-Z]/; // <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> // var ldhStr = /[-0-9a-zA-Z]+/; // <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ] // var label = /[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?/; // <subdomain> ::= <label> | <subdomain> "." <label> // var subdomain = /^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/; // <domain> ::= <subdomain> | " " HostnamePattern = `^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$` )
Variables ¶
var Default = NewSeededFormats(nil, nil)
Default is the default formats registry
Functions ¶
func DefaultNameNormalizer ¶
DefaultNameNormalizer removes all dashes
func IsDateTime ¶
IsDateTime returns true when the string is a valid date-time
func IsDuration ¶
IsDuration returns true if the provided string is a valid duration
func IsHostname ¶
IsHostname returns true when the string is a valid hostname
func IsStrictURI ¶
IsStrictURI returns true when the string is an absolute URI
Types ¶
type Base64 ¶
type Base64 []byte
Base64 represents a base64 encoded string
swagger:strfmt byte
func (Base64) MarshalText ¶
MarshalText turns this instance into text
func (*Base64) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type CreditCard ¶
type CreditCard string
CreditCard represents a credit card string format
swagger:strfmt creditcard
func (CreditCard) MarshalText ¶
func (u CreditCard) MarshalText() ([]byte, error)
MarshalText turns this instance into text
func (*CreditCard) Scan ¶
func (u *CreditCard) Scan(raw interface{}) error
Scan read a value from a database driver
func (*CreditCard) UnmarshalText ¶
func (u *CreditCard) UnmarshalText(data []byte) error
UnmarshalText hydrates this instance from text
type Date ¶
Date represents a date from the API
swagger:strfmt date
func (Date) MarshalText ¶
MarshalText serializes this date type to string
func (*Date) UnmarshalText ¶
UnmarshalText parses a text representation into a date type
type DateTime ¶
DateTime is a time but it serializes to ISO8601 format with millis It knows how to read 3 different variations of a RFC3339 date time. Most API's we encounter want either millisecond or second precision times. This just tries to make it worry-free.
swagger:strfmt date-time
func ParseDateTime ¶
ParseDateTime parses a string that represents an ISO8601 time or a unix epoch
func (DateTime) MarshalText ¶
MarshalText implements the text marshaller interface
func (*DateTime) UnmarshalText ¶
UnmarshalText implements the text unmarshaller interface
type Duration ¶
Duration represents a duration
swagger:strfmt duration
func (Duration) MarshalText ¶
MarshalText turns this instance into text
func (*Duration) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type Email ¶
type Email string
Email represents the email string format as specified by the json schema spec
swagger:strfmt email
func (Email) MarshalText ¶
MarshalText turns this instance into text
func (*Email) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type Format ¶
type Format interface { encoding.TextMarshaler encoding.TextUnmarshaler }
Format represents a string format
type HexColor ¶
type HexColor string
HexColor represents a hex color string format
swagger:strfmt hexcolor
func (HexColor) MarshalText ¶
MarshalText turns this instance into text
func (*HexColor) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type Hostname ¶
type Hostname string
Hostname represents the hostname string format as specified by the json schema spec
swagger:strfmt hostname
func (Hostname) MarshalText ¶
MarshalText turns this instance into text
func (*Hostname) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type IPv4 ¶
type IPv4 string
IPv4 represents an IP v4 address
swagger:strfmt ipv4
func (IPv4) MarshalText ¶
MarshalText turns this instance into text
func (*IPv4) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type IPv6 ¶
type IPv6 string
IPv6 represents an IP v6 address
swagger:strfmt ipv6
func (IPv6) MarshalText ¶
MarshalText turns this instance into text
func (*IPv6) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type ISBN ¶
type ISBN string
ISBN represents an isbn string format
swagger:strfmt isbn
func (ISBN) MarshalText ¶
MarshalText turns this instance into text
func (*ISBN) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type ISBN10 ¶
type ISBN10 string
ISBN10 represents an isbn 10 string format
swagger:strfmt isbn10
func (ISBN10) MarshalText ¶
MarshalText turns this instance into text
func (*ISBN10) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type ISBN13 ¶
type ISBN13 string
ISBN13 represents an isbn 13 string format
swagger:strfmt isbn13
func (ISBN13) MarshalText ¶
MarshalText turns this instance into text
func (*ISBN13) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type NameNormalizer ¶
NameNormalizer is a function that normalizes a format name
type Password ¶
type Password string
Password represents a password. This has no validations and is mainly used as a marker for UI components.
swagger:strfmt password
func (Password) MarshalText ¶
MarshalText turns this instance into text
func (*Password) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type RGBColor ¶
type RGBColor string
RGBColor represents a RGB color string format
swagger:strfmt rgbcolor
func (RGBColor) MarshalText ¶
MarshalText turns this instance into text
func (*RGBColor) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type Registry ¶
type Registry interface { Add(string, Format, Validator) bool DelByName(string) bool GetType(string) (reflect.Type, bool) ContainsName(string) bool Validates(string, string) bool Parse(string, string) (interface{}, error) }
Registry is a registry of string formats
func NewFormats ¶
func NewFormats() Registry
NewFormats creates a new formats registry seeded with the values from the default
func NewSeededFormats ¶
func NewSeededFormats(seeds []knownFormat, normalizer NameNormalizer) Registry
NewSeededFormats creates a new formats registry
type SSN ¶
type SSN string
SSN represents a social security string format
swagger:strfmt ssn
func (SSN) MarshalText ¶
MarshalText turns this instance into text
func (*SSN) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type URI ¶
type URI string
URI represents the uri string format as specified by the json schema spec
swagger:strfmt uri
func (URI) MarshalText ¶
MarshalText turns this instance into text
func (*URI) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type UUID ¶
type UUID string
UUID represents a uuid string format
swagger:strfmt uuid
func (UUID) MarshalText ¶
MarshalText turns this instance into text
func (*UUID) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type UUID3 ¶
type UUID3 string
UUID3 represents a uuid3 string format
swagger:strfmt uuid3
func (UUID3) MarshalText ¶
MarshalText turns this instance into text
func (*UUID3) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type UUID4 ¶
type UUID4 string
UUID4 represents a uuid4 string format
swagger:strfmt uuid4
func (UUID4) MarshalText ¶
MarshalText turns this instance into text
func (*UUID4) UnmarshalText ¶
UnmarshalText hydrates this instance from text
type UUID5 ¶
type UUID5 string
UUID5 represents a uuid5 string format
swagger:strfmt uuid5
func (UUID5) MarshalText ¶
MarshalText turns this instance into text
func (*UUID5) UnmarshalText ¶
UnmarshalText hydrates this instance from text