stidgen

Crates.iostidgen
lib.rsstidgen
version0.1.1
sourcesrc
created_at2021-08-09 21:25:06.342654
updated_at2021-08-15 16:44:04.92725
descriptionStrongly Typed ID types macro
homepagehttps://github.com/vbfox/stidgen.rs
repositoryhttps://github.com/vbfox/stidgen.rs
max_upload_size
id433987
size43,818
Julien Roncaglia (vbfox)

documentation

README

Strongly Typed ID types macro

A macro to simplify usage of srongly type ID types instead of plain String, u64 or Guid in Rust codebases.

use stidgen::{Id, id};

#[id]
pub struct UserId(String);

#[id(NoDefaults, Format, Debug)]
pub struct UserId(u64);

While the derive macro can already be used to achieve most of what this macro proposes using it has the following advantages:

  • It's simplier to use for well known types, simply add #[id] to your struct
  • The defaults provide a lot of blanket implementations that might be missed when doing it manually
  • Some features provided don't have corresponding derive macros (AsBytes, AsRef, Borrow)
  • All trivial functions are marked inline

Settings

Default types

For unknown types all features are disabled by default but some types like String have smart defaults.

#[id(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Display, ToString, Debug, AsBytes, ...)]
pub struct Id(String);
Commit count: 88

cargo fmt