Crate butane[][src]

Modules

db
migrations

For working with migrations. If using the butane CLI tool, it is not necessary to use these types directly.

prelude

Prelude module to improve ergonomics.

query

Types to support database queries. Most users will use the query!, filter!, and find! macros instead of using this module directly.

Macros

colname

Typesafe way to refer to a column name. Use as colname!(MODEL_TYPE, FIELD_NAME). E.g. For a model type Foo with a field bar, colname!(Foo, bar) would return "bar", but colname!(Foo, bat)would be a compiler error (assumingFoo` does not have such a field.

filter

Macro to construct a BoolExpr (for use with a Query) from an expression with Rust syntax.

find

Finds a specific database object.

query

Constructs a filtered database query.

Structs

ForeignKey

Used to implement a relationship between models.

Many

Used to implement a many-to-many relationship between models.

ObjectState

Used internally by butane to track state about the object.

Enums

Error

Butane errors.

SqlType

Enumeration of the types a database value may take.

SqlVal

A database value.

Traits

AsPrimaryKey

Trait for referencing the primary key for a given model. Used to implement ForeignKey equality tests.

DataObject

An object in the database.

DataResult

A type which may be the result of a database query.

FieldType

Type suitable for being a database column.

FromSql

Used to convert a SqlVal into another type.

IntoSql

Used to convert another type to a SqlVal.

ToSql

Used to convert another type to a SqlVal.

Type Definitions

Result

Attribute Macros

butane_type

Attribute macro which marks a type as being available to butane for use in models.

dataresult

Attribute macro which generates an implementation of DataResult. Continuing with our blog post example from model, we could create a DataResult with only some of the fields from Post (to avoid fetching all of them in a query).

model

Attribute macro which marks a struct as being a data model and generates an implementation of DataObject. This macro will also write information to disk at compile time necessary to generate migrations