/winvoice-adapter

Shared adapter definitions for CLInvoice.

Primary LanguageRustOtherNOASSERTION

CLInvoice Adapter

This crate provides traits which can are used to provide an abstraction for CLInvoice frontends to enable the option of different types of storage facilities (e.g. Postgres vs MySQL)

Contains various tools, such as those to generate SQL and reference table columns.

Features

  • serde enables the use of [serde] with the types in this crate.
  • sqlx_runtime_tokio_rustls enables [sqlx]'s runtime-tokio-rustls feature, which is only set so that the project can be built on its own.
    • This crate should be compiled with --no-default-features.

Usage

If you are looking to create a new adapter:

  1. Create newtypes for each trait in [crate::schema].
  2. Implement each newtype's corresponding Adapter trait.
  3. Add a new variant in Adapters.
  4. Create a new feature flag for the adapter in the corresponding frontend you want to support the new adapter.
  5. Write add new match arms in areas that match on Adapters.