| Crates.io | typed-fields |
| lib.rs | typed-fields |
| version | 0.5.2 |
| created_at | 2024-01-26 23:47:55.550182+00 |
| updated_at | 2025-08-11 13:15:47.128571+00 |
| description | A collection of macros that generate newtypes |
| homepage | |
| repository | https://github.com/jdno/typed-fields |
| max_upload_size | |
| id | 1116103 |
| size | 201,923 |
typed-fieldsDo you like strongly-typed structs?
typed-fields is a collection of macros that generate types following the
newtype pattern. The following types are currently supported:
name! - a string-based typenumber! - a number-based typesecret! - a type for secrets (requires the secret feature)ulid! - a type for ULIDs (requires the ulid feature)url! - a type for URLs (requires the url feature)uuid! - a type for UUIDs (requires the uuid feature)The following example showcases the number! macro, which generates a new type
that is backed by an i64.
use typed_fields::number;
// Define a new type that is backed by an `i64`
number!(UserId);
fn main() {
// Create a new `UserId` from an `i64`
let id = UserId::new(42);
// Common traits like `Display` are automatically implemented for the type
println!("User ID: {}", id);
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.