12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package strftime
- type Option interface {
- Name() string
- Value() interface{}
- }
- type option struct {
- name string
- value interface{}
- }
- func (o *option) Name() string { return o.name }
- func (o *option) Value() interface{} { return o.value }
- const optSpecificationSet = `opt-specification-set`
- // WithSpecification allows you to specify a custom specification set
- func WithSpecificationSet(ds SpecificationSet) Option {
- return &option{
- name: optSpecificationSet,
- value: ds,
- }
- }
- type optSpecificationPair struct {
- name byte
- appender Appender
- }
- const optSpecification = `opt-specification`
- // WithSpecification allows you to create a new specification set on the fly,
- // to be used only for that invocation.
- func WithSpecification(b byte, a Appender) Option {
- return &option{
- name: optSpecification,
- value: &optSpecificationPair{
- name: b,
- appender: a,
- },
- }
- }
- // WithMilliseconds is similar to WithSpecification, and specifies that
- // the Strftime object should interpret the pattern `%b` (where b
- // is the byte that you specify as the argument)
- // as the zero-padded, 3 letter milliseconds of the time.
- func WithMilliseconds(b byte) Option {
- return WithSpecification(b, Milliseconds())
- }
- // WithMicroseconds is similar to WithSpecification, and specifies that
- // the Strftime object should interpret the pattern `%b` (where b
- // is the byte that you specify as the argument)
- // as the zero-padded, 3 letter microseconds of the time.
- func WithMicroseconds(b byte) Option {
- return WithSpecification(b, Microseconds())
- }
- // WithUnixSeconds is similar to WithSpecification, and specifies that
- // the Strftime object should interpret the pattern `%b` (where b
- // is the byte that you specify as the argument)
- // as the unix timestamp in seconds
- func WithUnixSeconds(b byte) Option {
- return WithSpecification(b, UnixSeconds())
- }
|