ic-dbms-api 0.1.0

Public API types for ic-dbms-canister. This crate provides shared types for interacting and implementing the ic-dbms-canister.
Documentation
# IC DBMS API

![logo](../assets/images/cargo/logo-128.png)

[![license-mit](https://img.shields.io/crates/l/ic-dbms-api.svg)](https://opensource.org/licenses/MIT)
[![repo-stars](https://img.shields.io/github/stars/veeso/ic-dbms?style=flat)](https://github.com/veeso/ic-dbms/stargazers)
[![downloads](https://img.shields.io/crates/d/ic-dbms-api.svg)](https://crates.io/crates/ic-dbms-api)
[![latest-version](https://img.shields.io/crates/v/ic-dbms-api.svg)](https://crates.io/crates/ic-dbms-api)
[![ko-fi](https://img.shields.io/badge/donate-ko--fi-red)](https://ko-fi.com/veeso)
[![conventional-commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)

[![ci](https://github.com/veeso/ic-dbms/actions/workflows/ci.yml/badge.svg)](https://github.com/veeso/ic-dbms/actions)
[![coveralls](https://coveralls.io/repos/github/veeso/ic-dbms/badge.svg)](https://coveralls.io/github/veeso/ic-dbms)
[![docs](https://docs.rs/ic-dbms-api/badge.svg)](https://docs.rs/ic-dbms-api)

This crate exposes all the types shared between an IC DBMS Canister and an external canister

You can import all the useful types and traits by using the prelude module:

```rust
use ic_dbms_api::prelude::*;
```

## Types

### DBMS

#### Database

- [`Database`]crate::prelude::Database

#### Foreign Fetcher

- [`ForeignFetcher`]crate::prelude::ForeignFetcher

#### Init

- [`IcDbmsCanisterArgs`]crate::prelude::IcDbmsCanisterArgs
- [`IcDbmsCanisterInitArgs`]crate::prelude::IcDbmsCanisterInitArgs
- [`IcDbmsCanisterUpdateArgs`]crate::prelude::IcDbmsCanisterUpdateArgs

#### Query

- [`DeleteBehavior`]crate::prelude::DeleteBehavior
- [`Filter`]crate::prelude::Filter
- [`Query`]crate::prelude::Query
- [`QueryBuilder`]crate::prelude::QueryBuilder
- [`QueryError`]crate::prelude::QueryError
- [`QueryResult`]crate::prelude::QueryResult
- [`OrderDirection`]crate::prelude::OrderDirection
- [`Select`]crate::prelude::Select

#### Table

- [`ColumnDef`]crate::prelude::ColumnDef
- [`ForeignKeyDef`]crate::prelude::ForeignKeyDef
- [`InsertRecord`]crate::prelude::InsertRecord
- [`TableColumns`]crate::prelude::TableColumns
- [`TableError`]crate::prelude::TableError
- [`TableRecord`]crate::prelude::TableRecord
- [`UpdateRecord`]crate::prelude::UpdateRecord
- [`ValuesSource`]crate::prelude::ValuesSource

### Transaction

- [`TransactionError`]crate::prelude::TransactionError
- [`TransactionId`]crate::prelude::TransactionId

#### Dbms Types

- [`Blob`]crate::prelude::Blob
- [`Boolean`]crate::prelude::Boolean
- [`Date`]crate::prelude::Date
- [`DateTime`]crate::prelude::DateTime
- [`Decimal`]crate::prelude::Decimal
- [`Int32`]crate::prelude::Int32
- [`Int64`]crate::prelude::Int64
- [`Nullable`]crate::prelude::Nullable
- [`Principal`]crate::prelude::Principal
- [`Text`]crate::prelude::Text
- [`Uint32`]crate::prelude::Uint32
- [`Uint64`]crate::prelude::Uint64
- [`Uuid`]crate::prelude::Uuid

#### Value

- ['DataType']crate::prelude::DataType
- [`Value`]crate::prelude::Value

### Memory

- [`DataSize`]crate::memory::DataSize
- [`Encode`]crate::memory::Encode
- [`DecodeError`]crate::memory::DecodeError
- [`MemoryError`]crate::memory::MemoryError
- [`MemoryResult`]crate::memory::MemoryResult
- [`MSize`]crate::memory::MSize
- [`Page`]crate::memory::Page
- [`PageOffset`]crate::memory::PageOffset

## License

This project is licensed under the MIT License. See the [LICENSE](../LICENSE) file for details.