Skip to main content

rango_orm_core/
lib.rs

1//! Database-free core of [Rango ORM](https://crates.io/crates/rango-orm): model traits, schema and field types.
2//!
3//! Internal crate: depend on `rango-orm`, which re-exports it.
4#![forbid(unsafe_code)]
5pub mod column;
6pub mod config;
7pub mod constraints;
8pub mod error;
9pub mod fields;
10#[doc(hidden)]
11pub mod filter;
12pub mod hooks;
13pub mod model;
14pub mod query;
15pub mod related;
16pub mod row;
17pub mod schema;
18#[doc(hidden)]
19pub mod type_map;
20
21pub use column::{
22    Column, ColumnRef, FilterColumn, FilterValue, ForeignKeyRef, ManyToManyField, OrderRef,
23    Ordering, PrefetchKind, PrefetchRef,
24};
25pub use config::{BackendKind, DatabaseConfig};
26pub use constraints::{
27    CheckConstraint, Constraint, IndexDef, OrderBy, OrderDir, UniqueConstraint, asc, desc,
28};
29// Migration / backend plumbing, not part of the user API.
30#[doc(hidden)]
31pub use constraints::{
32    check_constraint_name, constraint_definition, constraint_name, unique_constraint_name,
33};
34pub use error::{Error, Result};
35pub use fields::*;
36#[doc(hidden)]
37pub use filter::{DEFAULT_QUERY_LIMIT, Dialect, Filter, PrefetchSpec, SelectRelatedSpec};
38pub use hooks::{BoxFuture, HookResult, ModelHooks};
39#[doc(hidden)]
40pub use hooks::{
41    after_delete, after_insert, after_update, before_delete, before_insert, before_update,
42};
43pub use model::{
44    Model, ModelMixin, PrimaryKey, PrimaryKeyField, UnsupportedPk, check_columns, unknown_column,
45};
46#[doc(hidden)]
47pub use query::insert_values;
48pub use query::{Filterable, ModelValues, SqlValue, ToSqlValue, quote_ident, quote_ident_mysql};
49pub use related::WithRelated;
50pub use row::{FromRow, Partial, RangoRow, RowError};
51pub use rust_decimal::Decimal;
52pub use schema::{
53    ColumnDef, ColumnType, DefaultValue, FkReference, ReferentialAction, TableSchema,
54};