|0.3.2||Dec 11, 2022|
|0.3.0||Nov 4, 2021|
|0.2.3||Jun 19, 2020|
|0.1.1||Apr 30, 2020|
#15 in #value
5,286 downloads per month
Used in 11 crates (via rvstruct)
Value Structs derive macros for Rust to support the newtype pattern
A very simple derive macros to support strong type system and the newtype pattern. Newtypes are a zero-cost abstraction: they introduce a new, distinct name for an existing type, with no runtime overhead when converting between the two types. This is a similar approach to Haskell's newtype keyword.
#[derive(ValueStruct)] struct UserId(String); let uid : UserId = "my-uid".into();
ValueStruct generates for you:
std::convert::From<>instances automatically to help you to create your structs.
ValueStruct::value()function implementation to access your field directly without using .0.
There are different behaviour for different field types:
Add this to your
[dependencies] rvstruct = "0.3"
// Import it use rvstruct::ValueStruct; // And use it on your structs #[derive(ValueStruct)] struct UserId(String);
Apache Software License (ASL)