#[cfg(test)]
extern crate self as djogi;
#[doc(hidden)]
pub mod __bypass;
pub mod apps;
pub mod array;
pub mod auth;
pub mod cache;
pub mod compose;
pub mod config;
pub mod context;
pub mod descriptor;
pub mod enum_;
pub mod error;
pub mod expr;
pub mod field_codec;
pub mod fts;
pub mod fts_query;
#[cfg(feature = "spatial")]
pub mod geo;
pub mod hooks;
pub(crate) mod ident;
pub mod intent;
pub mod jsonb;
pub mod live_migrate;
pub mod migrate;
pub mod model;
#[cfg(feature = "notify")]
pub mod notify;
pub mod outbox;
pub mod pg;
pub mod pg_types;
pub mod presentation;
pub mod primary_key;
pub mod query;
pub mod range;
pub mod relation;
pub mod snapshot;
pub mod testing;
pub mod tracked;
pub mod trait_registry;
pub mod transaction;
pub mod types;
pub mod visage;
pub mod visage_boundary;
pub use visage_boundary::DjogiVisageOf;
#[doc(hidden)]
pub use crate::cache::SassiBootHook;
#[doc(hidden)]
pub mod __private {
pub use futures;
pub use inventory;
pub use postgres_types;
pub use rust_decimal;
pub use serde;
pub use tokio;
pub use tokio_postgres;
pub use bytes;
pub mod pg {
pub use crate::pg::accumulator::SqlAccumulator;
pub use crate::pg::connection::PgConnection;
pub use crate::pg::decode::{
FromJoinedPgRow, FromPgRow, decode_at, decode_derived_at, decode_narrowed,
decode_narrowed_by_name, decode_narrowed_opt, decode_narrowed_opt_by_name,
decode_opt_u64_from_decimal, decode_opt_u64_from_decimal_by_name,
decode_u64_from_decimal, decode_u64_from_decimal_by_name, joined_alias_for_prefix,
try_get_scalar,
};
pub use ::postgres_types::{FromSql, ToSql, Type as PgType};
pub use ::tokio_postgres::Row as PgRow;
pub use ::tokio_postgres::Statement;
}
pub trait SameAs<T: ?Sized> {}
impl<T: ?Sized> SameAs<T> for T {}
pub use crate::visage_boundary::DjogiVisageOf;
pub use crate::visage_boundary::private::Sealed as VisageSealed;
pub use crate::visage::private::Sealed as DjogiVisageSealed;
pub use crate::testing::private::DerivedParitySealed;
pub use crate::visage::projection::ProjectionEntry;
pub mod pk_seal {
pub use crate::primary_key::PkSealToken;
pub const TOKEN: PkSealToken = PkSealToken::__new();
}
pub mod apps_seal {
pub use crate::apps::SealToken;
pub const TOKEN: SealToken = SealToken::__new();
}
pub mod hooks {
pub use crate::hooks::__seal::{MarkerSeal, Sealed};
pub use crate::hooks::HasHooks;
pub use crate::hooks::ModelHooks;
}
pub use tracing;
pub use crate::query::q::__SealedIntoQ;
pub mod query {
pub use crate::query::condition::{FilterValue, LookupOp};
pub use crate::query::field::djogi_field_macro_support::__make_djogi_field;
pub use crate::query::filter::{FilterClauseParts, clauses_into_condition, clauses_into_q};
pub use crate::query::portable::{PortablePredicateError, SqlEmitContext};
pub use crate::query::q::{IntoQ, Q};
pub use crate::query::portable::emit as portable_emit;
}
}
pub use apps::{App, AppDescriptor, AppIdentity, AppRegistry, CrossAppEdge};
#[doc(hidden)]
pub use apps::AppDiagnostic;
pub use compose::{Auditable, SoftDeletable};
pub use context::DjogiContext;
pub use descriptor::{
ComputedFieldDescriptor, DefaultVolatility, DeferrabilitySpec, DerivedProjection,
EnumDescriptor, FieldDescriptor, FieldSqlType, GeographySubtype, IndexColumnSpec, IndexKind,
IndexNameKind, IndexNameTarget, IndexNullsOrder, IndexOrder, IndexSpec, IndexTarget, IndexType,
ModelDescriptor, PartitionSpec, PkType, ProtectedFieldMetadata, RangeSubtypeKind,
RedactionPolicy, RetentionLabel, RustSourceType, Sensitivity, VisageDescriptor, index_name,
};
pub use pg::pool::DjogiPool;
pub use djogi_macros::{
DjogiEnum, JsonbSchema, Model, apps, deliberately_bypass_convention_with_raw_sql, many_to_many,
primary_key, reverse_one_to_many, reverse_one_to_one, trait_impl,
};
#[cfg(feature = "spatial")]
pub use geo::GeoPoint;
pub use hooks::ModelHooks;
pub use jsonb::{
Jsonb, JsonbPathRef, JsonbSchema, JsonbSqlCast, MirJzSON, MirJzSONError, UnknownField,
UnknownFieldExt,
};
pub use pg::decode::FromPgRow;
#[doc(hidden)]
pub use pg::decode::{FromJoinedPgRow, try_get_scalar};
pub use primary_key::{PrimaryKey, PrimaryKeyClientGen, PrimaryKeyDbGen};
pub use djogi_macros::djogi_test;
pub use error::{DbError, DjogiError};
pub type Result<T> = std::result::Result<T, DjogiError>;
pub use expr::{
AggregateExpr, Case, CaseBuilder, DenseRank, Exists, Expr, HypotheticalSetAgg, KindEvidence,
MetadataAgg, OrderedSetAgg, OuterRef, QualifyCondition, QualifyOp, Rank, RowNumber, Subquery,
ValueAgg, WindowRanking, grouping_of,
};
#[cfg(feature = "spatial")]
pub use expr::{BinaryRowAgg, MvtOptions, RowAggregate, RowKindEvidence};
pub use field_codec::FieldCodec;
#[doc(hidden)]
pub use field_codec::is_registered as is_codec_registered;
pub use fts::{FtsDescriptor, TsQuery, TsVector};
pub use fts_query::FtsFieldRef;
pub use query::{
AggregateQuery, AnnotatedQuerySet, ArrayPredicate, BasicPredicate, CachedPortableQuerySet,
ClosureModel, ConditionExt, DjogiPortableEq, FieldRef, FilterClause, InnerLateral,
InsertSelectColumn, InsertSelectSource, InsertSelectStmt, IntoAggregateTuple,
IntoFieldFilterValue, IntoFilterValue, IntoInsertColumns, IntoPortableFieldValue, IntoSetOpArm,
JoinedAnnotatedQuerySet, JoinedAnnotatedRow, JoinedQuerySet, LateralQuerySet, LeftLateral,
Lookup, MaterializeClosureOptions, MaterializeClosureReport, MergeCounts, MergeStmt,
ModelCursorStream, ModelFilter, OrderExpr, PairClosureKinshipSum, PairOrderExpr, PairSide,
PairWindowExt, PortableQuerySet, Q, QuerySet, RawCursorStream, RecursiveDirection,
RecursiveQuerySet, SetOpKind, SetOpQuerySet, UpdateAssignment, UpdateStmt, VisageQuerySet,
};
pub use relation::{
ForeignKey, ForeignKeyResolved, JoinedRow, ManyToMany, OnDelete, OneToOneField,
OneToOneFieldResolved, PrefetchedRow,
};
pub use tracked::Tracked;
pub use types::{
Date, DateTime, HeerId, HeerIdDesc, HeerIdRecencyBiased, Interval, Range, RangeBound, RanjId,
RanjIdDesc, RanjIdRecencyBiased,
};
#[cfg(feature = "network")]
pub use types::{CidrAddr, CidrAddrError, MacAddr, MacAddrParseError};
pub use visage::{DjogiVisage, VisageError};
pub mod prelude {
#[doc(hidden)]
pub use crate::apps::AppDiagnostic;
pub use crate::apps::{App, AppDescriptor, AppIdentity, AppRegistry, CrossAppEdge};
pub use crate::compose::{Auditable, SoftDeletable};
pub use crate::context::DjogiContext;
pub use crate::descriptor::{
DefaultVolatility, DeferrabilitySpec, EnumDescriptor, FieldDescriptor, FieldSqlType,
GeographySubtype, IndexColumnSpec, IndexKind, IndexNullsOrder, IndexOrder, IndexSpec,
IndexTarget, IndexType, ModelDescriptor, PartitionSpec, PkType, ProtectedFieldMetadata,
RangeSubtypeKind, RedactionPolicy, RetentionLabel, RustSourceType, Sensitivity,
};
pub use crate::error::{DbError, DjogiError};
pub use crate::expr::{
AggregateExpr, Case, CaseBuilder, DenseRank, Exists, Expr, HypotheticalSetAgg,
KindEvidence, MetadataAgg, OrderedSetAgg, OuterRef, QualifyCondition, QualifyOp, Rank,
RowNumber, Subquery, ValueAgg, WindowRanking, grouping_of,
};
#[cfg(feature = "spatial")]
pub use crate::expr::{BinaryRowAgg, MvtOptions, RowAggregate, RowKindEvidence};
pub use crate::field_codec::FieldCodec;
#[doc(hidden)]
pub use crate::field_codec::is_registered as is_codec_registered;
pub use crate::fts::{FtsDescriptor, TsQuery, TsVector};
pub use crate::fts_query::FtsFieldRef;
pub use crate::hooks::ModelHooks;
pub use crate::jsonb::{
Jsonb, JsonbPathRef, JsonbSchema, JsonbSqlCast, MirJzSON, MirJzSONError, UnknownField,
UnknownFieldExt,
};
pub use crate::model::Model;
pub use crate::pg::decode::FromPgRow;
#[doc(hidden)]
pub use crate::pg::decode::{FromJoinedPgRow, try_get_scalar};
pub use crate::pg::pool::DjogiPool;
pub use crate::query::{
AggregateQuery,
AnnotatedQuerySet,
ArrayPredicate,
BasicPredicate,
CachedPortableQuerySet,
ClosureModel,
ConditionExt,
CrossValuesJoinedQuerySet,
DjogiPortableEq,
FieldRef,
FilterClause,
InlineValues,
InsertSelectColumn,
InsertSelectSource,
InsertSelectStmt,
IntoAggregateTuple,
IntoFieldFilterValue,
IntoFilterValue,
IntoInsertColumns,
IntoPortableFieldValue,
IntoSetOpArm,
IntoValuesColumns,
JoinedAnnotatedQuerySet,
JoinedAnnotatedRow,
JoinedQuerySet,
LeftValuesJoinedQuerySet,
Lookup,
MaterializeClosureOptions,
MaterializeClosureReport,
MergeCounts,
MergeStmt,
ModelFilter,
OrderExpr,
PairClosureKinshipSum,
PairOrderExpr,
PairSide,
PairWindowExt,
PortableQuerySet,
Q,
QuerySet,
RecursiveDirection,
RecursiveQuerySet,
ReturningPair,
SetOpKind,
SetOpQuerySet,
ValuesFieldRef,
ValuesFields,
ValuesJoinedQuerySet,
ValuesOn,
ValuesRow,
ValuesScalar,
VisageQuerySet,
};
pub use crate::transaction::{
DeferScope, IsolationLevel, TransactionRetryBackoff, atomic, atomic_with,
retry_on_conflict, retry_on_conflict_with_backoff,
};
pub use crate::visage::{DjogiVisage, VisageError};
pub use djogi_macros::Model;
pub use crate::primary_key::{PrimaryKey, PrimaryKeyClientGen, PrimaryKeyDbGen};
pub use crate::relation::{
ForeignKey, ForeignKeyResolved, JoinedRow, ManyToMany, OnDelete, OneToOneField,
OneToOneFieldResolved, PrefetchedRow,
};
pub use crate::tracked::Tracked;
pub use crate::types::{
Date, DateTime, HeerId, HeerIdDesc, HeerIdRecencyBiased, Interval, Range, RangeBound,
RanjId, RanjIdDesc, RanjIdRecencyBiased,
};
#[cfg(feature = "network")]
pub use crate::types::{CidrAddr, MacAddr};
pub use crate::visage_boundary::DjogiVisageOf;
pub use djogi_macros::model;
pub use djogi_macros::apps;
pub use djogi_macros::primary_key;
pub use djogi_macros::djogi_test;
pub use djogi_macros::DjogiEnum;
pub use djogi_macros::JsonbSchema;
pub use ::serde::{Deserialize, Serialize};
#[cfg(feature = "spatial")]
pub use crate::geo::{GeoPoint, Polygon};
#[cfg(feature = "spatial")]
pub use crate::query::{AsGeobufTerminal, AsMvtTerminal};
}