Documentation ¶
Index ¶
- Constants
- Variables
- func Atoi(num string, base int) int64
- func CamelName(name string) string
- func CheckPasswordHash(password, hash string) bool
- func ContentDisposition(filename string, dispositionType ContentDispositionType) (disposition string)
- func Contract(separator string, contracts ...string) (result string)
- func CopyStruct(from interface{}, to interface{}, opts ...mapstructOption) (err error)
- func Data(fields ...Field) *optionData
- func DisableSquash() *optionSquash
- func EnableSquash() *optionSquash
- func Flatten(nested map[string]interface{}, prefix string, style SeparatorStyle) (map[string]interface{}, error)
- func FlattenString(nestedStr, prefix string, style SeparatorStyle) (string, error)
- func FormatInt(num int64, base int) string
- func Gid() (id uint64)
- func HashPassword(password string) (string, error)
- func HashPasswordWithCost(password string, cost int) (string, error)
- func InitialLowercase(from string) (to string)
- func IsInArray(val interface{}, array interface{}) (exists bool, index int)
- func JSONInit(db *sql.DB, initializer JSONInitializer, table string, field string) (err error)
- func JSONString(obj interface{}) string
- func MapToStruct(model map[string]interface{}, obj interface{}, opts ...mapstructOption) (err error)
- func Md5(from string) (to string, err error)
- func MySQLJsonInit(table string, filed string, conditionFiled string, conditionValue interface{}, ...) (sql string, err error)
- func MySQLJsonUpdate(table string, filed string, conditionFiled string, conditionValue interface{}, ...) (sql string, err error)
- func MySQLJsonUpdateWithConfig(table string, filed string, conditionFiled string, conditionValue interface{}, ...) (sql string, err error)
- func NewCodeException(code int) *codeException
- func NewException(code int, message string, fields ...Field) *exception
- func NewFieldException(message string, field Field) *fieldException
- func NewFieldsException(message string, fields ...Field) *fieldsException
- func NewJSONSyntaxError(original []byte) error
- func NewMessageException(message string) *messageException
- func NewPage(items interface{}, total int64, opts ...pageOption) *page
- func Page(page int32) *optionPage
- func ParsePackageName(domain string) (name string)
- func RandCode() string
- func RandDigit(length int) string
- func RandString(length int) string
- func RenderToFile(filename string, input string, data interface{}, isFile bool) (err error)
- func SearchString(slice []string, s string) int
- func Sha256Hmac(data string, secret string) (sha string, err error)
- func Size(size int32) *optionSize
- func Squash(squash bool) *optionSquash
- func StructToMap(obj interface{}, opts ...mapstructOption) (model map[string]interface{}, err error)
- func SymmetricKey(bits uint) (key []byte, err error)
- func Tag(tag string) *optionTag
- func TruncateDay(t time.Time) time.Time
- func TruncateUnix(timestamp int64) int64
- func UnZip(zipFileName, destFileName string) (err error)
- func UnderscoreName(name string, upperInitial bool) string
- func ZeroFields(zeroFields bool) *optionZeroFields
- func Zip(destFileName string, zipFileNames ...string) (err error)
- type AuthConfig
- type AuthType
- type BaseStruct
- type BaseTag
- type BaseUser
- type CannotCompare
- type CannotCopy
- type CertificateConfig
- type Checksum
- type ChecksumType
- type ClientCertificate
- type Code
- type CodeException
- type CodeMessage
- type ContentDispositionType
- type CreatedStruct
- type Debug
- type DeletedStruct
- type Duration
- type EmailConfig
- type Environment
- type Exception
- type Field
- type FieldException
- type Fields
- type FieldsException
- type Float64s
- type HttpHeader
- type HttpMethod
- type HttpParameter
- type HttpParameterType
- type HttpPathParameter
- type Id
- func (i Id) Base64() string
- func (i Id) Bytes() []byte
- func (i Id) Int64() int64
- func (i Id) IntBytes() [8]byte
- func (i Id) MarshalJSON() ([]byte, error)
- func (i Id) Node() int64
- func (i Id) Step() int64
- func (i Id) String() string
- func (i Id) Time() int64
- func (i *Id) UnmarshalJSON(data []byte) (err error)
- type IdStruct
- type Int64s
- type JSONFielder
- type JSONInitialized
- type JSONInitializer
- type JSONSyntaxError
- type Key
- type MapStruct
- type MessageException
- type NamedTag
- type NodeId
- type Paging
- type ProxyConfig
- type Secret
- type SeparatorStyle
- type Snowflake
- type SoftDeleteStruct
- type Sorter
- type String
- type StringSlice
- type Tagger
- type Timestamp
- func (t Timestamp) DayEnd() Timestamp
- func (t Timestamp) DayStart() Timestamp
- func (t Timestamp) DefaultTimeLayout() string
- func (t *Timestamp) Format() string
- func (t *Timestamp) GobDecode(data []byte) (err error)
- func (t Timestamp) GobEncode() ([]byte, error)
- func (t Timestamp) IsZero() bool
- func (t Timestamp) MarshalJSON() ([]byte, error)
- func (t Timestamp) Time() time.Time
- func (t *Timestamp) UnmarshalJSON(b []byte) error
- func (t *Timestamp) UnmarshalParam(src string) error
- type URIScheme
- type UpdatedStruct
- type Value
- type Weekday
Constants ¶
const ( // HeaderAcceptLanguage 可接受的语言 HeaderAcceptLanguage = "Accept-Language" // HeaderContentType 请求数据类型 HeaderContentType = "Content-Type" // HeaderAuthorization 授权 HeaderAuthorization = "Authorization" // HeaderContentDisposition 下载时的附件名指定 HeaderContentDisposition = "Content-disposition" // HttpMethodGet GET方法 HttpMethodGet HttpMethod = "GET" // HttpMethodPost POST方法 HttpMethodPost HttpMethod = "POST" // HttpMethodPut PUT方法 HttpMethodPut HttpMethod = "PUT" // HttpMethodDelete DELETE方法 HttpMethodDelete HttpMethod = "DELETE" // HttpMethodPatch PATCH方法 HttpMethodPatch HttpMethod = "PATCH" // HttpMethodHead HEAD方法 HttpMethodHead HttpMethod = "HEAD" // HttpMethodOptions OPTIONS方法 HttpMethodOptions HttpMethod = "OPTIONS" )
Variables ¶
var ( // Separate nested key components with dots, e.g. "a.b.1.c.d" DotStyle = SeparatorStyle{Middle: "."} // Separate with path-like slashes, e.g. a/b/1/c/d PathStyle = SeparatorStyle{Middle: "/"} // Separate ala Rails, e.g. "a[b][c][1][d]" RailsStyle = SeparatorStyle{Before: "[", After: "]"} // Separate with underscores, e.g. "a_b_1_c_d" UnderscoreStyle = SeparatorStyle{Middle: "_"} )
Default styles
var NotValidInputError = errors.New("Not a valid input: map or slice")
Nested input must be a map or slice
var NotValidJsonInputError = errors.New("Not a valid input, must be a map")
JSON nested input must be a map
var WeekdayCN = []string{
"周日",
"周一",
"周二",
"周三",
"周四",
"周五",
"周六",
}
WeekdayCN 中文的星期几
Functions ¶
func CheckPasswordHash ¶
CheckPasswordHash 检查密码的正确性
func ContentDisposition ¶
func ContentDisposition(filename string, dispositionType ContentDispositionType) (disposition string)
ContentDisposition 解决附件下载乱码
func CopyStruct ¶
func CopyStruct(from interface{}, to interface{}, opts ...mapstructOption) (err error)
CopyStruct 复制结构体数据
func Flatten ¶
func Flatten(nested map[string]interface{}, prefix string, style SeparatorStyle) (map[string]interface{}, error)
Flatten generates a flat map from a nested one. The original may include values of type map, slice and scalar, but not struct. Keys in the flat map will be a compound of descending map keys and slice iterations. The presentation of keys is set by style. A prefix is joined to each key.
func FlattenString ¶
func FlattenString(nestedStr, prefix string, style SeparatorStyle) (string, error)
FlattenString generates a flat JSON map from a nested one. Keys in the flat map will be a compound of descending map keys and slice iterations. The presentation of keys is set by style. A prefix is joined to each key.
func HashPasswordWithCost ¶
HashPasswordWithCost 生成密码
func MapToStruct ¶
func MapToStruct(model map[string]interface{}, obj interface{}, opts ...mapstructOption) (err error)
MapToStruct Map转换成结构体
func MySQLJsonInit ¶
func MySQLJsonInit( table string, filed string, conditionFiled string, conditionValue interface{}, initField string, initFieldValue interface{}, paths ...string, ) (sql string, err error)
MySQLJsonInit JSON初始化
func MySQLJsonUpdate ¶
func MySQLJsonUpdate( table string, filed string, conditionFiled string, conditionValue interface{}, data map[string]interface{}, ) (sql string, err error)
MySQLJsonUpdate 生成MySQL JSON增量更新SQL语句的快捷方式
func MySQLJsonUpdateWithConfig ¶
func MySQLJsonUpdateWithConfig( table string, filed string, conditionFiled string, conditionValue interface{}, data map[string]interface{}, prefix string, style SeparatorStyle, ) (sql string, err error)
MySQLJsonUpdateWithConfig 生成MySQL JSON增量更新SQL语句
func NewException ¶
NewException 创建异常
func NewFieldException ¶
NewFieldException 创建错误
func NewFieldsException ¶
NewFieldsException 创建错误
func NewJSONSyntaxError ¶
NewJSONSyntaxError 创建一个JSON语法错误
func NewMessageException ¶
func NewMessageException(message string) *messageException
NewMessageException 创建异常
func NewPage ¶
func NewPage(items interface{}, total int64, opts ...pageOption) *page
NewPage 生成新的分页数据对象
func ParsePackageName ¶
ParsePackageName 从域名解析出包名
func RenderToFile ¶
RenderToFile 渲染模板到文件
func Sha256Hmac ¶
Sha256Hmac 计算SHA256加密
func StructToMap ¶
func StructToMap(obj interface{}, opts ...mapstructOption) (model map[string]interface{}, err error)
StructToMap 结构体转换成Map
func TruncateUnix ¶
func UnderscoreName ¶
UnderscoreName 驼峰式写法转为下划线写法
Types ¶
type AuthConfig ¶
type AuthConfig struct { // Type 授权类型 Type AuthType `default:"type" json:"type" yaml:"type" validate:"oneof=basic token"` // Username 用户名 Username string `json:"username" yaml:"username"` // Password 密码 Password string `json:"password" yaml:"password"` // Token 授权码 Token string `json:"token" yaml:"token"` // Scheme 身份验证方案类型 Scheme string `json:"scheme" yaml:"scheme"` }
AuthConfig 授权信息
type BaseStruct ¶
type BaseStruct struct { IdStruct `xorm:"extends"` CreatedStruct `xorm:"extends"` UpdatedStruct `xorm:"extends"` }
BaseStruct 基础数据库模型
type BaseUser ¶
type BaseUser struct { BaseStruct `xorm:"extends"` // 用户名 Username String `xorm:"varchar(32) notnull default('') unique(uidx_name)" json:"username" validate:"omitempty,min=1,max=32,email"` // 手机号 // 类似于+86-17089792784 Phone String `xorm:"varchar(15) notnull default('') unique(uidx_phone)" json:"phone" validate:"omitempty,mobile"` // 密码 Pwd string `xorm:"varchar(512) notnull default('')" json:"-"` }
BaseUser 基础用户数据
type CertificateConfig ¶
type CertificateConfig struct { // 是否跳过TLS检查 Skip bool `default:"true" json:"skip" yaml:"skip"` // 根秘钥文件路径 Root string `json:"root" yaml:"root" validate:"required,file"` // 客户端 Clients []ClientCertificate `json:"clients" yaml:"clients" validate:"structonly"` }
CertificateConfig 秘钥
type Checksum ¶
type Checksum struct { // Sum 校验字符串 Sum string `json:"sum" validate:"required"` // Type 类型 Type ChecksumType `json:"type" validate:"required,oneof=crc32 crc64 sha1 sha256"` }
Checksum 数据校验
type ChecksumType ¶
type ChecksumType string
ChecksumType 数据校验合类型
const ( // ChecksumTypeCrc32 Crc32 ChecksumTypeCrc32 ChecksumType = "crc32" // ChecksumTypeCrc64 Crc64 ChecksumTypeCrc64 ChecksumType = "crc64" // ChecksumTypeSha1 Crc64 ChecksumTypeSha1 ChecksumType = "sha1" // ChecksumTypeSha256 Crc64 ChecksumTypeSha256 ChecksumType = "sha256" )
type ClientCertificate ¶
type ClientCertificate struct { // 公钥文件路径 Public string `json:"public" yaml:"public" validate:"required,file"` // 私钥文件路径 Private string `json:"private" yaml:"private" validate:"required,file"` }
ClientCertificate 客户端秘钥
type CodeException ¶
type CodeException interface { // Code 返回错误码 Code() int }
CodeException 带状态码的错误
type CodeMessage ¶
type CodeMessage struct { // 消息代码 Code Code `json:"code"` // 消息标题 // 通常是模板字符串 Title *string `json:"title"` // 消息内容 // 通常是模板字符串 Text *string `json:"text,omitempty"` }
CodeMessage 带消息代码的消息
func NewCodeMessage ¶
func NewCodeMessage(code Code, title, text string) *CodeMessage
NewCodeMessage 创建消息
func (CodeMessage) ParseText ¶
func (cm CodeMessage) ParseText(params ...interface{}) CodeMessage
ParseText 格式化输出Text,并返回新的消息对象
func (CodeMessage) ParseTitle ¶
func (cm CodeMessage) ParseTitle(params ...interface{}) CodeMessage
ParseTitle 格式化输出Title,并返回新的消息对象
type ContentDispositionType ¶
type ContentDispositionType string
ContentDispositionType 下载类型
const ( // ContentDispositionTypeAttachment 附件下载 ContentDispositionTypeAttachment ContentDispositionType = "attachment" // ContentDispositionTypeInline 浏览器直接打开 ContentDispositionTypeInline ContentDispositionType = "inline" )
type CreatedStruct ¶
type CreatedStruct struct { // 创建时间 Created time.Time `xorm:"created default('2020-02-04 09:55:52')" json:"created"` }
CreatedStruct 带创建时间模型
type DeletedStruct ¶
type DeletedStruct struct { // 删除时间,用户软删除 Deleted time.Time `xorm:"deleted default('2020-02-04 09:55:52')" json:"deleted"` }
DeletedStruct 软删除模型
type Duration ¶
Duration 弥补标准库不能使用ParseDuration
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON 解析JSON
type EmailConfig ¶
type EmailConfig struct { // 主机 Host string `validate:"required"` // 端口 Port int `validate:"required"` // 用户名 Username string `validate:"required"` // 密码 Password string `validate:"required"` // 发送者名字 Name string `validate:"required"` // 发送者邮件地址 From string `validate:"required,email"` }
EmailConfig 邮箱配置
type Environment ¶
type Environment string
Environment 环境类型
const ( // EnvironmentDev 开发 EnvironmentDev Environment = "dev" // EnvironmentTest 测试 EnvironmentTest Environment = "test" // EnvironmentQa 测试 EnvironmentQa Environment = "qa" // EnvironmentRelease 发布环境 EnvironmentRelease Environment = "release" // EnvironmentProd 生产 EnvironmentProd Environment = "prod" // EnvironmentLocal 本地环境 EnvironmentLocal Environment = "local" // EnvironmentSimulation 模拟请求(不发真实请求到服务器) EnvironmentSimulation Environment = "simulation" )
type Exception ¶
type Exception interface { CodeException MessageException FieldsException }
Exception 接口,符合条件的错误统一处理
type FieldException ¶
type FieldException interface { MessageException // Field 返回错误实体 // 在某些错误下,可能需要返回额外的信息给前端处理 // 比如,认证错误,需要返回哪些字段有错误 Field() Field }
type FieldsException ¶
type FieldsException interface { MessageException // Fields 返回错误实体 // 在某些错误下,可能需要返回额外的信息给前端处理 // 比如,认证错误,需要返回哪些字段有错误 Fields() Fields }
type Float64s ¶
type Float64s []float64
Float64s 浮点型列表
func (Float64s) MarshalJSON ¶
func (*Float64s) UnmarshalJSON ¶
func (*Float64s) UnmarshalParam ¶
type HttpHeader ¶
type HttpHeader struct {
// contains filtered or unexported fields
}
HttpHeader Http请求头
func NewHttpHeader ¶
func NewHttpHeader(key string, value string) *HttpHeader
NewHttpHeader 创建一个Http请求头
func (*HttpHeader) Key ¶
func (hh *HttpHeader) Key() string
func (*HttpHeader) Type ¶
func (hh *HttpHeader) Type() HttpParameterType
func (*HttpHeader) Value ¶
func (hh *HttpHeader) Value() string
type HttpParameter ¶
type HttpParameter interface { // Type 类型 Type() HttpParameterType // Key 键 Key() string // Value 值 Value() string }
HttpParameter Http额外参数接口
type HttpParameterType ¶
type HttpParameterType string
HttpParameterType Http额外参数类型
const ( // HttpParameterTypeHeader 请求头 HttpParameterTypeHeader HttpParameterType = "header" // HttpParameterTypePathParameter 路径参数 HttpParameterTypePathParameter HttpParameterType = "path" )
type HttpPathParameter ¶
type HttpPathParameter struct {
// contains filtered or unexported fields
}
HttpPathParameter Http路径参数
func NewHttpPathParameter ¶
func NewHttpPathParameter(key string, value string) *HttpPathParameter
NewHttpPathParameter 创建一个Http路径参数
func (*HttpPathParameter) Key ¶
func (hh *HttpPathParameter) Key() string
func (*HttpPathParameter) Type ¶
func (hh *HttpPathParameter) Type() HttpParameterType
func (*HttpPathParameter) Value ¶
func (hh *HttpPathParameter) Value() string
type IdStruct ¶
type IdStruct struct { // Id 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` }
IdStruct 带序列号的模型
type Int64s ¶
type Int64s []int64
Int64s 长整形列表
func (Int64s) MarshalJSON ¶
func (*Int64s) UnmarshalJSON ¶
func (*Int64s) UnmarshalParam ¶
type JSONFielder ¶
type JSONFielder interface { // InitializeField 初始化字段 InitializeField() string }
JSONFielder JSON字段
type JSONInitialized ¶
type JSONInitialized struct { // Initialized 是否初始化 Initialized bool `json:"initialized,omitempty"` }
JSONInitialized JSON是否初始化
func (JSONInitialized) InitializeField ¶
func (ji JSONInitialized) InitializeField() string
func (JSONInitialized) IsInitialized ¶
func (ji JSONInitialized) IsInitialized() bool
type JSONInitializer ¶
type JSONInitializer interface { // InitSQL 初始化SQL InitSQL(table string, field string) (string, error) // IsInitialized 是否已经初始化完成 IsInitialized() bool }
JSONInitializer JSON初始化者
type JSONSyntaxError ¶
type JSONSyntaxError struct {
// contains filtered or unexported fields
}
JSONSyntaxError JSON语法错误
func (JSONSyntaxError) Error ¶
func (j JSONSyntaxError) Error() string
type MapStruct ¶
type MapStruct interface { // StructToMap 转换成Map StructToMap() (model map[string]interface{}, err error) // MapToStruct 转换成结构体 MapToStruct(model map[string]interface{}) (err error) }
MapStruct Map和结构体转换
type MessageException ¶
type MessageException interface { // Message 返回错误消息 Message() string }
MessageException 带消息的错误
type NamedTag ¶
type NamedTag struct { BaseTag // contains filtered or unexported fields }
NamedTag 描述Golang的Tag标记
type Paging ¶
type Paging struct { // 当前页 Page int `default:"1" json:"page" param:"page" query:"page" form:"page" xml:"page" validate:"min=1"` // 每页个数 Size int `default:"20" json:"size" param:"size" query:"size" form:"size" xml:"size" validate:"min=1"` // 查询关键字 Keyword string `json:"keyword" param:"keyword" query:"keyword" form:"keyword" xml:"keyword" ` // 排序顺序 Order string `` /* 158-byte string literal not displayed */ }
Paging 分页对象
type ProxyConfig ¶
type ProxyConfig struct { // Host 主机(可以是Ip或者域名) Host string `json:"ip" yaml:"ip" validate:"required"` // Port 端口 Port int `default:"80" json:"port" yaml:"port" validate:"required"` // Scheme 代理类型 Scheme URIScheme `default:"scheme" json:"scheme" yaml:"type" validate:"required,oneof=socks4 socks5 http https"` // Username 代理认证用户名 Username string `json:"username" yaml:"username"` // Password 代理认证密码 Password string `json:"password" yaml:"password"` }
ProxyConfig 代理配置
func (*ProxyConfig) Addr ¶
func (p *ProxyConfig) Addr() (addr string)
type Secret ¶
type Secret struct { // 授权,相当于用户名 Id string `json:"id" yaml:"id" validate:"required"` // 授权,相当于密码 Key string `json:"key" yaml:"key" validate:"required"` }
Secret 描述一个第三方应用授权
type SeparatorStyle ¶
type SeparatorStyle struct { Before string // Prepend to key Middle string // Add between keys After string // Append to key }
The style of keys. If there is an input with two nested keys "f" and "g", with "f" at the root,
{ "f": { "g": ... } }
the output will be the concatenation
f{Middle}{Before}g{After}...
Any struct element may be blank. If you use Middle, you will probably leave Before & After blank, and vice-versa. See examples in flatten_test.go and the "Default styles" here.
type Snowflake ¶
type Snowflake struct {
// contains filtered or unexported fields
}
Snowflake 雪花生成器
func NewSnowflake ¶
NewSnowflake 创建一个雪花生成器
type SoftDeleteStruct ¶
type SoftDeleteStruct struct { BaseStruct `xorm:"extends"` DeletedStruct `xorm:"extends"` }
SoftDeleteStruct 带软删除功能的数据库模型
type StringSlice ¶
type StringSlice []string
func (*StringSlice) UnmarshalParam ¶
func (ss *StringSlice) UnmarshalParam(src string) error
type Timestamp ¶
Timestamp 时间戳
func ParseTimestamp ¶
ParseTimestamp 从Time对象生成Timestamp
func (Timestamp) DefaultTimeLayout ¶
DefaultTimeLayout 按默认时间布局转换为字符串
func (Timestamp) MarshalJSON ¶
MarshalJSON 序列化成JSON时调用
func (*Timestamp) UnmarshalJSON ¶
UnmarshalJSON 反序列化成JSON时调用
func (*Timestamp) UnmarshalParam ¶
UnmarshalParam 从Echo参数转换
type URIScheme ¶
type URIScheme string
URIScheme 协议
const ( // URISchemeUnknown 未知协议 URISchemeUnknown URIScheme = `` // URISchemeSocksV4 Socks协议 URISchemeSocksV4 URIScheme = `socks4` // URISchemeSocksV5 Socks协议 URISchemeSocksV5 URIScheme = `socks4` // URISchemeHttp Http协议 URISchemeHttp URIScheme = `http` // URISchemeHttps Https协议 URISchemeHttps URIScheme = `https` // URISchemeRtmp Rtmp协议 URISchemeRtmp URIScheme = `rtmp` // URISchemeMqtt MQTT协议 URISchemeMqtt URIScheme = `mqtt` // URISchemeMqtts MQTT安全协议 URISchemeMqtts URIScheme = `mqtts` // URISchemeWs Websocket协议 URISchemeWs URIScheme = `ws` // URISchemeWss Websocket安全协议 URISchemeWss URIScheme = `wss` )
type UpdatedStruct ¶
type UpdatedStruct struct { // 最后更新时间 Updated time.Time `xorm:"updated default('2020-02-04 09:55:52')" json:"updated"` }
UpdatedStruct 带修改时间模型
Source Files ¶
- array.go
- auth.go
- cannot_compare.go
- cannot_copy.go
- certificate.go
- checksum.go
- database_json.go
- database_string.go
- debug.go
- duration.go
- email.go
- encrypt.go
- environment.go
- exception.go
- exception_code.go
- exception_field.go
- exception_fields.go
- exception_message.go
- field.go
- flatten.go
- float64s.go
- gid.go
- http.go
- http_header.go
- http_path_parameter.go
- int64s.go
- itoa.go
- json.go
- key.go
- mapstruct_option.go
- mapstruct_options.go
- mapstructure.go
- message.go
- option_data.go
- option_page.go
- option_size.go
- option_squash.go
- option_tag.go
- option_zero_fields.go
- page.go
- page_option.go
- paging.go
- password.go
- proxy.go
- secret.go
- snowflake.go
- sorter.go
- string.go
- string_parse.go
- string_rand.go
- string_slice.go
- struct.go
- tag.go
- template.go
- timestamp.go
- uri_scheme.go
- user.go
- value.go
- weekday.go
- zip.go