Skip to main content

closure_tree/
lib.rs

1//! SeaORM-centric closure tree implementation.
2//!
3//! This crate mirrors the behaviour of the Ruby `closure_tree` gem while exposing
4//! an asynchronous API that composes with SeaORM entities. At this stage the
5//! implementation focuses on PostgreSQL support; the public API is kept backend
6//! agnostic so MySQL can follow.
7
8pub mod config;
9pub mod error;
10pub mod lock;
11pub mod repository;
12pub mod traits;
13
14pub mod prelude {
15    //! Convenient re-exports for consumers.
16    pub use crate::config::{
17        AdvisoryLockStrategy, ClosureTreeConfig, ClosureTreeOptions, DependentBehavior,
18        OrderStrategy,
19    };
20    pub use crate::traits::ClosureTreeModel;
21}
22
23pub use closure_tree_macros::ClosureTreeModel as ClosureTreeModelDerive;
24#[doc(hidden)]
25pub use closure_tree_macros::ClosureTreeModel;
26pub use config::{
27    AdvisoryLockKey, AdvisoryLockStrategy, ClosureTreeConfig, ClosureTreeOptions,
28    DependentBehavior, OrderStrategy,
29};
30pub use error::ClosureTreeError;
31pub use repository::ClosureTreeRepository;
32pub use traits::ClosureTreeModel;