jankenstore 0.3.1

Database operation helpers library
Documentation

jankenstore

Database operation helpers library

The crate

It creates a set of generic functions to operate on a SQLite database.

Action enums:

Enums under jankenstore::action::*

They can be converted from serde_json::Value which which can be used by web server such as Axum, in the form of request payloads.

Enum Enumerator Description
ReaderOp ByPk(String, Vec<JsonValue>) Read records by primary keys, with (table_name, pk_list) as inputs
Children(String, Vec<RelConfigClientInput>) Read child records which belongs to specific parents (n-1 relationship)
Peers(String, Vec<RelConfigClientInput>) Read peer records which belongs to specific peers(n-n relationship)
Search(String, (String, String)) Search records by a specific field and value
ModifyOp Create(String, JsonValue) Create a new record, with (table_name, payload) as inputs
CreateChild(String, Vec<RelConfigClientInputSingle>, JsonValue) Create a new child record, with (table_name, parents, payload) as inputs
Update(String, Vec<JsonValue>, JsonValue) Update records by primary keys, with (table_name, pk_list, payload) as inputs
UpdateChildren(String, Vec<RelConfigClientInput>, JsonValue) Update child records which belongs to specific parents, with (table_name, parents, payload) as inputs
DelOp Delete(String, Vec<JsonValue>) Delete records by primary keys, with (table_name, pk_list) as inputs
DeleteChildren(String, Vec<RelConfigClientInput>) Delete child records which belongs to specific parents, with (table_name, parents) as inputs
RelOp Link(RelConfigClientInput, RelConfigClientInput) Link records into peer (n-to-n) relationships, with (peer1_vals, peer2_vals) as inputs
Unlink(RelConfigClientInput, RelConfigClientInput) Unlink records of peer (n-to-n) relationships, with (peer1_vals, peer2_vals) as inputs

Each enum has a with_schema function to perform the operation on a specific database with a specific schema configuration.