| Crates.io | type_at_derive |
| lib.rs | type_at_derive |
| version | 0.1.0 |
| created_at | 2021-10-08 09:43:35.85231+00 |
| updated_at | 2021-10-08 09:43:35.85231+00 |
| description | Provides the #[derive(TypeAt)] proc. macro. |
| homepage | |
| repository | https://github.com/robbepop/type_at |
| max_upload_size | |
| id | 462265 |
| size | 6,442 |
Provides a trait TypeAt which allow to query the n-th type of a Rust tuple at compile time.
use type_at::TypeAt;
let _: i8 = <(i8, i16, i32, i64) as TypeAt<0>>::Type::default();
let _: i16 = <(i8, i16, i32, i64) as TypeAt<1>>::Type::default();
let _: i32 = <(i8, i16, i32, i64) as TypeAt<2>>::Type::default();
let _: i64 = <(i8, i16, i32, i64) as TypeAt<3>>::Type::default();
use type_at::TypeAt;
let _: i64 = <<<<(i8, (i16, (i32, (i64,))))
as TypeAt<1>>::Type // (i16, (i32, (i64,)))
as TypeAt<1>>::Type // (i32, (i64,))
as TypeAt<1>>::Type // (i64,)
as TypeAt<0>>::Type::default();
#[derive(TypeAt)]
pub struct TupleStruct(i8, i16, i32);
let _: i8 = <TupleStruct as TypeAt<0>>::Type::default();
let _: i16 = <TupleStruct as TypeAt<1>>::Type::default();
let _: i32 = <TupleStruct as TypeAt<2>>::Type::default();
#[derive(TypeAt)]
pub struct Struct { a: i8, b: i16, c: i32 }
let _: i8 = <Struct as TypeAt<0>>::Type::default();
let _: i16 = <Struct as TypeAt<1>>::Type::default();
let _: i32 = <Struct as TypeAt<2>>::Type::default();
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 below, without any additional terms or conditions.