oboard/morm/engine does not have a README file

    Engine

    pub(open) trait Engine {
    async fn page(Self, query : &QueryBuilder, pageable : Pageable) -> QueryResult
    async fn page_raw(Self, sql : String, params : FixedArray[Param], pageable : Pageable) -> QueryResult
    async fn exec(Self, query : &QueryBuilder) -> QueryResult
    async fn exec_raw(Self, sql : String, params : FixedArray[Param]) -> QueryResult
    async fn migrate_table(Self, table_schema :
    Table
    ) -> QueryResult
    fn close(Self) -> Unit
    }

    FromParam

    pub(open) trait FromParam {
    fn from_param(Param) -> Self raise ParamDecodeError
    }

    impl FromParam for Unit
    impl FromParam for Bool
    impl FromParam for Byte
    impl FromParam for Int
    impl FromParam for Int16
    impl FromParam for Int64
    impl FromParam for UInt
    impl FromParam for UInt16
    impl FromParam for UInt64
    impl FromParam for Float
    impl FromParam for Double
    impl FromParam for String
    impl FromParam for Option[T]
    impl FromParam for Bytes
    impl FromParam for Json

    QueryBuilder

    pub(open) trait QueryBuilder {
    fn to_query(Self) -> Query
    }

    ToParam

    pub(open) trait ToParam {
    fn 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
    impl ToParam for Map[String, Param]

    ParamDecodeError

    pub(all) suberror ParamDecodeError {
    ParamDecodeError(String)
    } derive(Eq, ToJson)

    ParamDecodeError::equal

    ParamDecodeError::not_equal

    fn ParamDecodeError::not_equal(x : ParamDecodeError, y : ParamDecodeError) -> Bool

    ParamDecodeError::output

    fn ParamDecodeError::output(self : ParamDecodeError, logger : &Logger) -> Unit

    ParamDecodeError::to_json

    ParamDecodeError::to_string

    fn ParamDecodeError::to_string(self : ParamDecodeError) -> String

    ConnectionPool

    pub(all) struct ConnectionPool[C] {
    idle :
    Queue
    [C]
    permits :
    Semaphore

    closed : Bool
    }

    ConnectionPool::ConnectionPool

    fn[C] ConnectionPool::ConnectionPool(max_open : Int, max_idle? : Int) -> ConnectionPool[C]

    ConnectionPool::borrow

    async fn[C] ConnectionPool::borrow(self : ConnectionPool[C], open_conn : async () -> Result[C, String]) -> Result[C, String]

    ConnectionPool::close

    fn[C] ConnectionPool::close(self : ConnectionPool[C], close_conn : (C) -> Unit) -> Unit

    ConnectionPool::release

    fn[C] ConnectionPool::release(self : ConnectionPool[C], conn : C, close_conn : (C) -> Unit, reusable? : Bool) -> Unit

    DeleteStatement

    pub(all) struct DeleteStatement {
    from : String
    where_ : FixedArray[Where]
    } derive(Eq, ToJson,
    FromJson
    )

    DeleteStatement::equal

    DeleteStatement::not_equal

    fn DeleteStatement::not_equal(x : DeleteStatement, y : DeleteStatement) -> Bool

    DeleteStatement::output

    fn DeleteStatement::output(self : DeleteStatement, logger : &Logger) -> Unit

    DeleteStatement::to_json

    DeleteStatement::to_string

    fn DeleteStatement::to_string(self : DeleteStatement) -> String

    InsertStatement

    pub(all) struct InsertStatement {
    into : String
    columns : FixedArray[String]
    values : FixedArray[Param]
    rows : FixedArray[FixedArray[Param]]
    } derive(Eq, ToJson,
    FromJson
    )

    InsertStatement::equal

    InsertStatement::not_equal

    fn InsertStatement::not_equal(x : InsertStatement, y : InsertStatement) -> Bool

    InsertStatement::output

    fn InsertStatement::output(self : InsertStatement, logger : &Logger) -> Unit

    InsertStatement::to_json

    InsertStatement::to_string

    fn InsertStatement::to_string(self : InsertStatement) -> String

    OrderBy

    pub(all) enum OrderBy {
    Asc(String)
    Desc(String)
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for OrderBy

    OrderBy::equal

    fn OrderBy::equal(OrderBy, OrderBy) -> Bool

    OrderBy::not_equal

    fn OrderBy::not_equal(x : OrderBy, y : OrderBy) -> Bool

    OrderBy::output

    fn OrderBy::output(self : OrderBy, logger : &Logger) -> Unit

    OrderBy::to_json

    fn OrderBy::to_json(OrderBy) -> Json

    OrderBy::to_string

    fn OrderBy::to_string(self : OrderBy) -> String

    Page

    pub(all) struct Page[T] {
    content : FixedArray[T]
    total_elements : Int
    total_pages : Int
    number : Int
    size : Int
    first : Bool
    last : Bool
    empty : Bool
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for Page[T]
    impl FromParam for Page[T]

    Page::equal

    fn[T : Eq] Page::equal(Page[T], Page[T]) -> Bool

    Page::from_param

    fn[T : FromParam] Page::from_param(value : Param) -> Page[T] raise ParamDecodeError

    Page::not_equal

    fn[T : Eq] Page::not_equal(x : Page[T], y : Page[T]) -> Bool

    Page::output

    fn[T] Page::output(self : Page[T], logger : &Logger) -> Unit

    Page::to_json

    fn[T : ToJson] Page::to_json(Page[T]) -> Json

    Page::to_string

    fn[T] Page::to_string(self : Page[T]) -> String

    Pageable

    pub(all) struct Pageable {
    page : Int
    size : Int
    sort : Sort?
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    impl Show for Pageable

    Pageable::equal

    fn Pageable::equal(Pageable, Pageable) -> Bool

    Pageable::not_equal

    fn Pageable::not_equal(x : Pageable, y : Pageable) -> Bool

    Pageable::output

    fn Pageable::output(self : Pageable, logger : &Logger) -> Unit

    Pageable::to_json

    fn Pageable::to_json(Pageable) -> Json

    Pageable::to_repr

    Pageable::to_string

    fn Pageable::to_string(self : Pageable) -> String

    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
    , String?)
    Time(
    PlainTime
    , String?)
    DateTime(
    PlainDateTime
    , String?)
    Timestamp(
    ZonedDateTime
    , String?)
    Uuid(String)
    Object(Map[String, Param])
    Json(Json)
    String(String)
    Bytes(Bytes)
    }

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

    Param::equal

    fn Param::equal(self : Param, other : Param) -> Bool

    Param::from_param

    fn Param::from_param(self : Param) -> Param raise ParamDecodeError

    Param::not_equal

    fn Param::not_equal(x : Param, y : Param) -> Bool

    Param::output

    fn Param::output(self : Param, logger : &Logger) -> Unit

    Param::to_json

    fn Param::to_json(self : Param) -> Json

    Param::to_param

    fn Param::to_param(self : Param) -> Param

    Param::to_string

    fn Param::to_string(self : Param) -> String

    Query

    pub(all) enum Query {
    Statement(Statement)
    Raw(String, FixedArray[Param])
    Tx(TxOp)
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for Query

    Query::equal

    fn Query::equal(Query, Query) -> Bool

    Query::not_equal

    fn Query::not_equal(x : Query, y : Query) -> Bool

    Query::output

    fn Query::output(self : Query, logger : &Logger) -> Unit

    Query::to_json

    fn Query::to_json(Query) -> Json

    Query::to_query

    fn Query::to_query(self : Query) -> Query

    Query::to_string

    fn Query::to_string(self : Query) -> String

    QueryResult

    pub(all) struct QueryResult {
    ok : Bool
    rows_affected : Int
    rows : FixedArray[Map[String, Param]]
    error : String?
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for QueryResult

    QueryResult::equal

    fn QueryResult::equal(QueryResult, QueryResult) -> Bool

    QueryResult::not_equal

    fn QueryResult::not_equal(x : QueryResult, y : QueryResult) -> Bool

    QueryResult::output

    fn QueryResult::output(self : QueryResult, logger : &Logger) -> Unit

    QueryResult::to_json

    fn QueryResult::to_json(QueryResult) -> Json

    QueryResult::to_string

    fn QueryResult::to_string(self : QueryResult) -> String

    SelectStatement

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

    SelectStatement::equal

    SelectStatement::not_equal

    fn SelectStatement::not_equal(x : SelectStatement, y : SelectStatement) -> Bool

    SelectStatement::output

    fn SelectStatement::output(self : SelectStatement, logger : &Logger) -> Unit

    SelectStatement::to_json

    SelectStatement::to_string

    fn SelectStatement::to_string(self : SelectStatement) -> String

    Set

    pub(all) struct Set {
    col : String
    value : Param
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for Set

    Set::equal

    fn Set::equal(Set, Set) -> Bool

    Set::not_equal

    fn Set::not_equal(x : Set, y : Set) -> Bool

    Set::output

    fn Set::output(self : Set, logger : &Logger) -> Unit

    Set::to_json

    fn Set::to_json(Set) -> Json

    Set::to_string

    fn Set::to_string(self : Set) -> String

    Sort

    pub(all) struct Sort {
    property : String
    direction : SortDirection
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    impl Show for Sort

    Sort::equal

    fn Sort::equal(Sort, Sort) -> Bool

    Sort::not_equal

    fn Sort::not_equal(x : Sort, y : Sort) -> Bool

    Sort::output

    fn Sort::output(self : Sort, logger : &Logger) -> Unit

    Sort::to_json

    fn Sort::to_json(Sort) -> Json

    Sort::to_repr

    Sort::to_string

    fn Sort::to_string(self : Sort) -> String

    SortDirection

    pub(all) enum SortDirection {
    Asc
    Desc
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    SortDirection::equal

    SortDirection::not_equal

    fn SortDirection::not_equal(x : SortDirection, y : SortDirection) -> Bool

    SortDirection::output

    fn SortDirection::output(self : SortDirection, logger : &Logger) -> Unit

    SortDirection::to_json

    SortDirection::to_string

    fn SortDirection::to_string(self : SortDirection) -> String

    Statement

    pub(all) enum Statement {
    Select(SelectStatement)
    Insert(InsertStatement)
    Upsert(UpsertStatement)
    Update(UpdateStatement)
    Delete(DeleteStatement)
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for Statement

    Statement::equal

    fn Statement::equal(Statement, Statement) -> Bool

    Statement::not_equal

    fn Statement::not_equal(x : Statement, y : Statement) -> Bool

    Statement::output

    fn Statement::output(self : Statement, logger : &Logger) -> Unit

    Statement::to_json

    fn Statement::to_json(Statement) -> Json

    Statement::to_string

    fn Statement::to_string(self : Statement) -> String

    TxOp

    pub(all) enum TxOp {
    Begin
    Commit
    Rollback
    Savepoint(String)
    RollbackToSavepoint(String)
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for TxOp

    TxOp::equal

    fn TxOp::equal(TxOp, TxOp) -> Bool

    TxOp::not_equal

    fn TxOp::not_equal(x : TxOp, y : TxOp) -> Bool

    TxOp::output

    fn TxOp::output(self : TxOp, logger : &Logger) -> Unit

    TxOp::to_json

    fn TxOp::to_json(TxOp) -> Json

    TxOp::to_string

    fn TxOp::to_string(self : TxOp) -> String

    UpdateStatement

    pub(all) struct UpdateStatement {
    table : String
    sets : FixedArray[Set]
    where_ : FixedArray[Where]
    } derive(Eq, ToJson,
    FromJson
    )

    UpdateStatement::equal

    UpdateStatement::not_equal

    fn UpdateStatement::not_equal(x : UpdateStatement, y : UpdateStatement) -> Bool

    UpdateStatement::output

    fn UpdateStatement::output(self : UpdateStatement, logger : &Logger) -> Unit

    UpdateStatement::to_json

    UpdateStatement::to_string

    fn UpdateStatement::to_string(self : UpdateStatement) -> String

    UpsertStatement

    pub(all) struct UpsertStatement {
    table : String
    sets : FixedArray[Set]
    conflict_target : FixedArray[String]
    update_sets : FixedArray[Set]
    } derive(Eq, ToJson,
    FromJson
    )

    UpsertStatement::equal

    UpsertStatement::not_equal

    fn UpsertStatement::not_equal(x : UpsertStatement, y : UpsertStatement) -> Bool

    UpsertStatement::output

    fn UpsertStatement::output(self : UpsertStatement, logger : &Logger) -> Unit

    UpsertStatement::to_json

    UpsertStatement::to_string

    fn UpsertStatement::to_string(self : UpsertStatement) -> String

    Where

    pub(all) struct Where {
    col : String
    value : Param
    ty : WhereType
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for Where

    Where::equal

    fn Where::equal(Where, Where) -> Bool

    Where::not_equal

    fn Where::not_equal(x : Where, y : Where) -> Bool

    Where::output

    fn Where::output(self : Where, logger : &Logger) -> Unit

    Where::to_json

    fn Where::to_json(Where) -> Json

    Where::to_string

    fn Where::to_string(self : Where) -> String

    WhereType

    pub(all) enum WhereType {
    Eq
    Ne
    Gt
    Lt
    Gte
    Lte
    Like
    } derive(Eq, ToJson,
    FromJson
    )

    impl Show for WhereType

    WhereType::equal

    fn WhereType::equal(WhereType, WhereType) -> Bool

    WhereType::not_equal

    fn WhereType::not_equal(x : WhereType, y : WhereType) -> Bool

    WhereType::output

    fn WhereType::output(self : WhereType, logger : &Logger) -> Unit

    WhereType::to_json

    fn WhereType::to_json(WhereType) -> Json

    WhereType::to_string

    fn WhereType::to_string(self : WhereType) -> String

    bytes_to_hex

    fn bytes_to_hex(data : Bytes) -> String

    decode_json_column

    fn decode_json_column(value : Json, storage : String) -> Json raise ParamDecodeError

    enum_from_param

    fn[T :
    FromJson
    ] enum_from_param(value : Param) -> T raise ParamDecodeError

    enum_to_param

    fn[T : ToJson] enum_to_param(value : T) -> Param raise ParamDecodeError

    format_plain_date

    fn format_plain_date(value :
    PlainDate
    , format : String?) -> String

    format_plain_date_time

    fn format_plain_date_time(value :
    PlainDateTime
    , format : String?) -> String

    format_plain_time

    fn format_plain_time(value :
    PlainTime
    , format : String?) -> String

    format_zoned_date_time

    fn format_zoned_date_time(value :
    ZonedDateTime
    , format : String?) -> String

    from_param

    fn[T : FromParam] from_param(value : Param) -> T raise ParamDecodeError

    param_from_json_value

    fn param_from_json_value(json : Json) -> Param

    param_row_from_json

    fn param_row_from_json(row : Json) -> Map[String, Param]

    preload_belongs_to_default

    async fn[E : Engine] preload_belongs_to_default(engine : E, sql : String, target_key : String, key_params : FixedArray[Param]) -> Map[String, Json]

    preload_has_many_default

    async fn[E : Engine] preload_has_many_default(engine : E, sql : String, target_key : String, key_params : FixedArray[Param]) -> Map[String, Array[Json]]

    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_default

    async fn[E : Engine] preload_many_to_many_default(engine : E, sql : String, key_params : FixedArray[Param]) -> Map[String, Array[Json]]

    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).

    render_query_sql

    fn render_query_sql(query : &QueryBuilder) -> (String, FixedArray[Param])

    to_param

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