Sign in

    oboard/morm/engine does not have a README file

    Engine

    pub(open) trait Engine {
    render(Self, stmt : Statement) -> (String, FixedArray[Param])
    tx_begin_sql(Self) -> String
    tx_commit_sql(Self) -> String
    tx_rollback_sql(Self) -> String
    tx_savepoint_sql(Self, name : String) -> String
    tx_rollback_to_savepoint_sql(Self, name : String) -> String
    async migrate_table(Self, table_schema : Json) -> QueryResult
    async exec_raw(Self, sql : String, params : FixedArray[Param]) -> QueryResult
    preload_in_sql(Self, table : String, key_col : String, count : Int) -> String
    preload_many_to_many_sql(Self, target_table : String, target_key : String, join_table : String, join_owner_key : String, join_target_key : String, count : Int) -> String
    close(Self) -> Unit
    }

    QueryBuilder

    pub(open) trait QueryBuilder {
    to_statement(Self) -> Statement
    }

    ToParam

    pub(open) trait ToParam {
    to_param(Self) -> Param
    }

    impl ToParam for Unit
    impl ToParam for Bool
    impl ToParam for Byte
    impl ToParam for Int
    impl ToParam for Int16
    impl ToParam for Int64
    impl ToParam for UInt
    impl ToParam for UInt16
    impl ToParam for UInt64
    impl ToParam for Float
    impl ToParam for Double
    impl ToParam for String
    impl ToParam for Bytes
    impl ToParam for Json

    DeleteStatement

    pub(all) struct DeleteStatement {
    from : String
    where_ : FixedArray[Where]
    }

    InsertStatement

    pub(all) struct InsertStatement {
    into : String
    columns : FixedArray[String]
    values : FixedArray[Param]
    }

    OrderBy

    pub(all) enum OrderBy {
    Asc(String)
    Desc(String)
    }

    impl Eq for OrderBy
    impl Show for OrderBy
    impl ToJson for OrderBy

    Param

    pub(all) enum Param {
    Null
    Bool(Bool)
    Byte(Byte)
    Int(Int)
    Int16(Int16)
    UInt16(UInt16)
    UInt(UInt)
    UInt64(UInt64)
    Int64(Int64)
    BigInt(
    BigInt
    )
    Float(Float)
    Double(Double)
    Decimal(String)
    Date(
    PlainDate
    )
    Time(
    PlainTime
    )
    DateTime(
    PlainDateTime
    )
    Timestamp(
    ZonedDateTime
    )
    Uuid(String)
    Json(Json)
    String(String)
    Bytes(Bytes)
    }

    impl Eq for Param
    impl Show for Param
    impl ToJson for Param
    impl ToParam for Param

    QueryResult

    pub(all) struct QueryResult {
    ok : Bool
    rows_affected : Int
    rows : FixedArray[Json]
    error : String?
    }

    impl Eq for QueryResult
    impl Show for QueryResult

    SelectStatement

    pub(all) struct SelectStatement {
    select : String
    from : String
    joins : FixedArray[String]
    where_ : FixedArray[Where]
    order_by : FixedArray[OrderBy]
    limit : Int?
    offset : Int?
    }

    Set

    pub(all) struct Set {
    col : String
    value : Param
    }

    impl Eq for Set
    impl Show for Set
    impl ToJson for Set

    Statement

    pub(all) enum Statement {
    Select(SelectStatement)
    Insert(InsertStatement)
    Upsert(UpsertStatement)
    Update(UpdateStatement)
    Delete(DeleteStatement)
    }

    impl Eq for Statement
    impl Show for Statement
    impl ToJson for Statement

    UpdateStatement

    pub(all) struct UpdateStatement {
    table : String
    sets : FixedArray[Set]
    where_ : FixedArray[Where]
    }

    UpsertStatement

    pub(all) struct UpsertStatement {
    table : String
    sets : FixedArray[Set]
    conflict_target : FixedArray[String]
    update_sets : FixedArray[Set]
    }

    Where

    pub(all) struct Where {
    col : String
    value : Param
    ty : WhereType
    }

    impl Eq for Where
    impl Show for Where
    impl ToJson for Where

    WhereType

    pub(all) enum WhereType {
    Eq
    Ne
    Gt
    Lt
    Gte
    Lte
    Like
    }

    impl Eq for WhereType
    impl Show for WhereType
    impl ToJson for WhereType

    exec_query

    async fn[E : Engine, Q : QueryBuilder] exec_query(engine : E, query : Q) -> QueryResult

    preload_in_sql_dollar

    fn preload_in_sql_dollar(table : String, key_col : String, count : Int) -> String

    preload_in_sql_qmark

    fn preload_in_sql_qmark(table : String, key_col : String, count : Int) -> String

    preload_many_to_many_sql_dollar

    fn preload_many_to_many_sql_dollar(target_table : String, target_key : String, join_table : String, join_owner_key : String, join_target_key : String, count : Int) -> String

    preload_many_to_many_sql_qmark

    fn preload_many_to_many_sql_qmark(target_table : String, target_key : String, join_table : String, join_owner_key : String, join_target_key : String, count : Int) -> String

    render_default_sql

    fn render_default_sql(stmt : Statement) -> (String, FixedArray[Param])

    Default renderer (MySQL/Sqlite style placeholders and upsert syntax).

    to_param

    fn[T : ToParam] to_param(value : T) -> Param

    tx_begin

    async fn[E : Engine] tx_begin(engine : E) -> QueryResult

    tx_commit

    async fn[E : Engine] tx_commit(engine : E) -> QueryResult

    tx_rollback

    async fn[E : Engine] tx_rollback(engine : E) -> QueryResult

    tx_rollback_to_savepoint

    async fn[E : Engine] tx_rollback_to_savepoint(engine : E, name : String) -> QueryResult

    tx_savepoint

    async fn[E : Engine] tx_savepoint(engine : E, name : String) -> QueryResult

    Source Files