Crates.io | vtid |
lib.rs | vtid |
version | 0.1.3 |
source | src |
created_at | 2024-11-14 21:06:58.909185 |
updated_at | 2024-11-14 21:15:02.802411 |
description | A Rust library for generating volatile type IDs |
homepage | |
repository | https://github.com/zakarumych/vtid |
max_upload_size | |
id | 1448326 |
size | 6,707 |
A Rust library for generating volatile type IDs that change when a crate is recompiled.
HasVtid
trait for your types.no_std
Compatible: Use in embedded and other no_std
environments.Add vtid
to your Cargo.toml
:
[dependencies]
vtid = { version = "0.1.0", features = ["derive"] }
Here's how to use vtid
in your project:
use vtid::{Vtid, HasVtid};
// Derive HasVtid for your types
#[derive(HasVtid)]
struct MyType;
// Get the volatile type ID
let type_id = Vtid::of::<MyType>();
println!("Type ID: {:?}", type_id);
// IDs change when crate is recompiled
let id1 = Vtid::of::<MyType>();
// Restart the program.
let id2 = Vtid::of::<MyType>(); // Same as id1
// Recompile program, but this crate and deps are not changed, so rlib is reused.
let id3 = Vtid::of::<MyType>(); // Should be the same as id1
// After this crate recompilation...
let id4 = Vtid::of::<MyType>(); // Different from id1
Licensed under either of
at your option.