| Crates.io | typechain |
| lib.rs | typechain |
| version | 0.1.0 |
| created_at | 2023-06-03 07:26:05.090267+00 |
| updated_at | 2023-06-03 07:26:05.090267+00 |
| description | Create chains of trait objects |
| homepage | https://github.com/panthios/typechain |
| repository | https://github.com/panthios/typechain |
| max_upload_size | |
| id | 881414 |
| size | 19,653 |
typechainThis crate provides procedural macros for generating chains of related traits in Rust.
types.rsuse typechain::{chainlink, chain};
chainlink!(Currency => {
const usd_value: f64;
});
chain!(Fiat => {
@Currency
const usd_value: f64;
});
impl Fiat {
pub fn new(usd_value: f64) -> Self {
Self { usd_value }
}
}
chain!(Crypto => {
@Currency
const usd_value: f64;
});
impl Crypto {
pub fn new(usd_value: f64) -> Self {
Self { usd_value }
}
}
main.rsuse typechain::use_chains;
mod types;
use types::{Fiat, Crypto};
use_chains![types::Currency];
fn main() {
let usd = Fiat::new(1.0);
let btc = Crypto::new(10000.0);
let currencies: Vec<&Currency> = vec![&usd, &btc];
}