#![recursion_limit = "256"]
#![warn(missing_docs)]
#![warn(clippy::all)]
#![deny(unsafe_code)]
#[doc(hidden)]
#[macro_export]
macro_rules! __doctest_prelude {
() => {
use std::time::Duration;
use tideorm::prelude::*;
#[tideorm::model(table = "users", soft_delete)]
struct User {
#[tideorm(primary_key, auto_increment)]
id: i64,
email: String,
name: String,
active: bool,
age: i32,
status: String,
role: String,
tier: String,
created_at: chrono::DateTime<chrono::Utc>,
deleted_at: Option<chrono::DateTime<chrono::Utc>>,
metadata: tideorm::prelude::Json,
settings: tideorm::prelude::Json,
preferences: tideorm::prelude::Json,
tags: tideorm::prelude::TextArray,
skills: tideorm::prelude::TextArray,
permissions: tideorm::prelude::TextArray,
last_login_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[tideorm::model(table = "products")]
struct Product {
#[tideorm(primary_key, auto_increment)]
id: i64,
category: String,
price: f64,
in_stock: bool,
}
#[tideorm::model(table = "orders")]
struct Order {
#[tideorm(primary_key, auto_increment)]
id: i64,
status: String,
category: String,
customer_id: i64,
total: f64,
amount: f64,
created_at: chrono::DateTime<chrono::Utc>,
}
#[tideorm::model(table = "cakes")]
struct Cake {
#[tideorm(primary_key, auto_increment)]
id: i64,
name: String,
bakery_id: i64,
}
#[tideorm::model(table = "posts")]
struct Post {
#[tideorm(primary_key, auto_increment)]
id: i64,
user_id: i64,
title: String,
}
#[tideorm::model(table = "profiles")]
struct Profile {
#[tideorm(primary_key, auto_increment)]
id: i64,
user_id: i64,
bio: String,
}
#[tideorm::model(table = "employees")]
struct Employee {
#[tideorm(primary_key, auto_increment)]
id: i64,
name: String,
manager_id: Option<i64>,
department_id: i64,
salary: f64,
}
#[tideorm::model(table = "appointments")]
struct Appointment {
#[tideorm(primary_key, auto_increment)]
id: i64,
patient_id: i64,
date: chrono::DateTime<chrono::Utc>,
}
#[tideorm::model(table = "sales")]
struct Sale {
#[tideorm(primary_key, auto_increment)]
id: i64,
amount: f64,
date: chrono::DateTime<chrono::Utc>,
created_at: chrono::DateTime<chrono::Utc>,
}
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __doctest_async {
($($body:tt)*) => {
async fn demo() -> tideorm::Result<()> {
$($body)*
Ok(())
}
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __doctest_tokenizable_user {
() => {
use tideorm::prelude::*;
#[tideorm::model(table = "users", tokenize)]
struct User {
#[tideorm(primary_key, auto_increment)]
id: i64,
email: String,
name: String,
}
};
}
#[doc(hidden)]
pub mod internal;
#[doc(hidden)]
pub use sea_orm;
pub mod error;
pub mod database;
pub mod model;
pub mod query;
pub mod types;
pub mod soft_delete;
pub mod callbacks;
pub mod sync;
pub mod schema;
pub mod relations;
extern crate self as tideorm;
#[cfg(feature = "attachments")]
pub mod attachments;
#[cfg(feature = "translations")]
pub mod translations;
pub mod config;
pub mod migration;
pub mod logging;
pub mod profiling;
pub mod cache;
pub mod seeding;
pub mod validation;
#[cfg(feature = "fulltext")]
pub mod fulltext;
pub mod columns;
pub mod tokenization;
pub mod prelude;
pub use database::Database;
#[cfg(feature = "attachments")]
pub use attachments::{AttachmentError, FileAttachment, FilesData, HasAttachments};
pub use callbacks::{CallbackRunner, Callbacks};
pub use config::{Config, TideConfig};
pub use database::{db, has_global_db, require_db, try_db};
pub use error::{Error, Result};
pub use migration::{ColumnType, Migration, Migrator, Schema};
pub use model::{Model, ModelMeta};
pub use query::{AggregateFunction, JoinClause, JoinType, Order, QueryBuilder};
pub use relations::{BelongsTo, EagerLoadExt, HasMany, HasOne, RelationExt, WithRelations};
pub use schema::SchemaWriter;
pub use soft_delete::SoftDelete;
#[cfg(feature = "translations")]
pub use translations::{
ApplyTranslations, FieldTranslations, HasTranslations, TranslationError, TranslationInput,
TranslationsData,
};
pub use logging::{
LogLevel, QueryDebugInfo, QueryLogEntry, QueryLogger, QueryOperation, QueryStats, QueryTimer,
};
pub use profiling::{
GlobalProfiler, GlobalStats, ProfileReport, ProfiledQuery, Profiler, QueryAnalyzer,
QueryComplexity, QuerySuggestion, SuggestionLevel,
};
pub use cache::{
CacheConfig, CacheKeyBuilder, CacheOptions, CacheStats, CacheStrategy, CacheWarmer,
CachedStatementInfo, PreparedStatementCache, PreparedStatementConfig, PreparedStatementStats,
QueryCache,
};
pub use validation::{
ValidatableValue, Validate, ValidationBuilder, ValidationErrors, ValidationRule, Validator,
};
pub use tokenization::{TokenConfig, TokenDecoder, TokenEncoder, Tokenizable};
pub use tideorm_macros::Model;
pub use tideorm_macros::model;
pub use async_trait;
pub use chrono;
pub use chrono::{DateTime, NaiveDateTime, Utc};
pub use rust_decimal::Decimal;
pub use serde::{Deserialize, Serialize};
pub use uuid::Uuid;