# Functions
New creates a new FieldDescriptor from a type and tags.
# Structs
Descriptor is a cache object that holds onto relevant information about our struct field and allows us not to worry about dealing with pointers during the coercion process.
Scanner fulfills the sql.Scanner interface which deserializes SQL values into the type dictated by our descriptor.
Valuer fulfills the sql/driver.Valuer interface which deserializes our struct field value into a valid SQL value.
# Type aliases
TagSet holds onto our tags for quick lookup.