pub struct Type {
pub nullable: bool,
pub unique: bool,
pub increments: bool,
pub indexed: bool,
pub primary: bool,
pub default: Option<WrappedDefault<'static>>,
pub size: Option<usize>,
pub inner: BaseType,
}
Expand description
A database column type and all the metadata attached to it
Using this struct directly is not recommended. Instead, you should be
using the constructor APIs in the types
module.
A Type
is an enum provided to other barrel
APIs in order
to generate SQL datatypes. Working with them directly is possible
but not recommended.
Instead, you can use these helper functions to construct Type
enums of
different…types and constraints. Field metadata is added via chainable
factory pattern functions.
Default values
If no additional arguments are provided, some assumptions will be made about the metadata of a column type.
nullable
:false
indexed
:false
unique
:false
default
:None
size
:None
(which will error if size is important)
Examples
extern crate barrel;
use barrel::types::*;
// Make your own Primary key :)
let col = integer().increments(true).unique(true);
Fields§
§nullable: bool
§unique: bool
§increments: bool
§indexed: bool
§primary: bool
§default: Option<WrappedDefault<'static>>
§size: Option<usize>
§inner: BaseType
Implementations§
source§impl Type
impl Type
This is a public API, be considered about breaking thigns
sourcepub fn increments(self, arg: bool) -> Self
pub fn increments(self, arg: bool) -> Self
Specify if this type should auto-increment
sourcepub fn indexed(self, arg: bool) -> Self
pub fn indexed(self, arg: bool) -> Self
Specify if this type should be indexed by your SQL implementation
sourcepub fn default(self, arg: impl Into<WrappedDefault<'static>>) -> Self
pub fn default(self, arg: impl Into<WrappedDefault<'static>>) -> Self
Provide a default value for a type column