#![cfg_attr(docsrs, feature(doc_cfg))]
pub mod entity;
mod error;
pub mod query;
pub mod types;
pub use entity::Schema;
pub use error::{DbErr, Result};
#[doc(hidden)]
pub mod __private {
pub use crate::entity::active_model::decode_field;
pub use crate::entity::iden::Static;
pub use crate::entity::model::get_field;
pub use async_trait::async_trait;
pub use turso_orm_driver::{Error as DriverError, FromValue, Result as DriverResult, Row};
pub use turso_sql::{Ident, IntoIden};
}
pub use turso_orm_driver::{
ConnectOptions, ConnectionTrait, Database, ExecResult, Row, StreamTrait, Transaction,
TransactionMode, TransactionTrait,
};
pub use turso_sql::{
self as sql, Build, Condition, Expr, Func, IntoCondition, JoinType, Order, Statement, Value,
};
pub type DatabaseConnection = Database;
#[cfg(feature = "macros")]
#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
pub use turso_orm_macros::{
DeriveActiveEnum, DeriveEntityModel, DeriveIden, DeriveIntoActiveModel, DerivePartialModel,
DeriveRelation, FromQueryResult,
};
pub mod prelude {
pub use crate::entity::NotSet;
pub use crate::entity::{
ActiveEnum, ActiveModelBehavior, ActiveModelTrait, ActiveValue, ColumnTrait, EntityTrait,
FromQueryResult, IntoActiveModel, IntoActiveValue, Linked, LoaderTrait, ModelTrait,
PartialModelTrait, PrimaryKeyTrait, Related, RelationDef, RelationTrait, Schema, Set,
TryIntoModel, Unchanged,
};
pub use crate::query::{Cursor, Paginator, Select, SelectTwo, SelectTwoMany};
pub use crate::types::TursoType;
pub use crate::{
Build, Condition, ConnectOptions, ConnectionTrait, Database, DatabaseConnection, DbErr,
Expr, Func, Order, Statement, StreamTrait, Transaction, TransactionMode, TransactionTrait,
Value,
};
#[cfg(feature = "macros")]
pub use crate::{
DeriveActiveEnum, DeriveEntityModel, DeriveIden, DeriveIntoActiveModel, DerivePartialModel,
DeriveRelation, FromQueryResult,
};
pub use turso_sql::prelude::{ColumnType, ForeignKeyAction, JoinType};
#[cfg(feature = "with-chrono")]
pub type DateTime = chrono::NaiveDateTime;
#[cfg(feature = "with-chrono")]
pub type DateTimeUtc = chrono::DateTime<chrono::Utc>;
#[cfg(feature = "with-chrono")]
pub type DateTimeWithTimeZone = chrono::DateTime<chrono::FixedOffset>;
#[cfg(feature = "with-chrono")]
pub type Date = chrono::NaiveDate;
#[cfg(feature = "with-chrono")]
pub type Time = chrono::NaiveTime;
#[cfg(feature = "with-json")]
pub type Json = serde_json::Value;
#[cfg(feature = "with-uuid")]
pub type Uuid = uuid::Uuid;
#[cfg(feature = "with-rust_decimal")]
pub type Decimal = rust_decimal::Decimal;
}