sea-orm-typed-id

Crates.iosea-orm-typed-id
lib.rssea-orm-typed-id
version0.2.0
sourcesrc
created_at2024-11-10 12:14:16.564823
updated_at2024-11-10 13:58:06.39418
descriptionA Rust library that provides a macro for generating type-safe database ID types for SeaORM.
homepage
repositoryhttps://github.com/reneklacan/sea-orm-typed-id
max_upload_size
id1442844
size9,525
René Klačan (reneklacan)

documentation

README

sea-orm-typed-id

Crates.io License: MIT

A Rust library that provides a macro for generating type-safe database ID types for SeaORM.

Caveat

You might not actually need this library; it’s just a macro, and you might be better off simply copying the code from src/lib.rs into your project.

Features

  • all: Enables all features
  • rustls: Enables rustls TLS backend for SeaORM
  • postgres: Enables PostgreSQL array support
  • utoipa: Enables OpenAPI schema generation support

Installation

Add this to your Cargo.toml:

[dependencies]
sea-orm-typed-id = { version = "0.1.0", features = ["all"] }

Usage

use sea_orm_typed_id::define_id;

define_id!(CakeId);

#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "cakes")]
pub struct Cake {
    pub id: CakeId,
}

define_id!(FillingId);

#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "fillings")]
pub struct Filling {
    pub id: FillingId,
}

#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "cake_fillings")]
pub struct CakeFilling {
    pub cake_id: CakeId,
    pub filling_id: FillingId,
}

License

This project is licensed under the MIT License. See the LICENSE file for details.

Commit count: 7

cargo fmt