1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#![doc = include_str!("README.md")]
#![doc(
    html_logo_url = "https://raw.githubusercontent.com/42ByteLabs/geekorm/main/assets/geekorm.png"
)]
#![deny(missing_docs)]

// Builder Modules
pub use geekorm_core::builder::columns::{Column, Columns};
pub use geekorm_core::builder::columntypes::{ColumnType, ColumnTypeOptions};
pub use geekorm_core::builder::table::Table;
pub use geekorm_core::Error;
// Keys Modules
pub use geekorm_core::builder::keys::foreign::{ForeignKey, ForeignKeyInteger};
#[cfg(feature = "uuid")]
pub use geekorm_core::builder::keys::primary::PrimaryKeyUuid;
pub use geekorm_core::builder::keys::primary::{PrimaryKey, PrimaryKeyInteger, PrimaryKeyString};

// Query Builder Modules
pub use geekorm_core::builder::models::{QueryCondition, QueryOrder, QueryType};
pub use geekorm_core::builder::values::{Value, Values};

// Query Modules
pub use geekorm_core::queries::Query;
pub use geekorm_core::queries::QueryBuilder;

/// Utils
pub mod utils {
    pub use geekorm_core::utils::*;
}

// Derive Crate
/// GeekTable Derive Macro
pub use geekorm_derive::GeekTable;

/// GeekORM Version
pub const GEEKORM_VERSION: &str = env!("CARGO_PKG_VERSION");
/// GeekORM Banner
pub const GEEKORM_BANNER: &str = r#"   ______          __   ____  ____  __  ___
  / ____/__  ___  / /__/ __ \/ __ \/  |/  /
 / / __/ _ \/ _ \/ //_/ / / / /_/ / /|_/ /
/ /_/ /  __/  __/ ,< / /_/ / _, _/ /  / /
\____/\___/\___/_/|_|\____/_/ |_/_/  /_/"#;

pub mod prelude {
    //! GeekORM prelude
    //!
    //! The prelude module re-exports the most commonly used traits and types from the GeekORM crate.
    //!
    //! The prelude is useful for importing commonly used items in a single line.
    //!
    //! # Example
    //!
    //! ```rust
    //! use geekorm::prelude::*;
    //! ```

    /// GeekTable
    pub use crate::GeekTable;

    // Traits

    /// Query Builder Trait
    pub use geekorm_core::QueryBuilderTrait;
    /// Table Builder Trait
    pub use geekorm_core::TableBuilder;
    /// Table Primary Key Trait
    pub use geekorm_core::TablePrimaryKey;
    /// SQLite Trait
    pub use geekorm_core::ToSqlite;
    // Backends Module
    pub use geekorm_core::{GeekConnection, GeekConnector};
}