Crates.io | typers |
lib.rs | typers |
version | 0.1.0 |
source | src |
created_at | 2024-03-18 15:54:42.653975 |
updated_at | 2024-03-18 15:54:42.653975 |
description | Type level programing |
homepage | |
repository | https://github.com/Aleod-m/typers |
max_upload_size | |
id | 1177998 |
size | 35,215 |
This crate provides some primitives to perform type level programming. At the moment it only provides booleans, usigned numbers and list at the type level.
How to construct a type from another?
To construct a type from another we use GATs (Generic Associated Types). An associated type can be seen as a function taking the type Self
as its first argument and returns a type. If the associated type has generics they can be considered as additional arguments. To perform operation with those types you might add trait bounds get access to other type functions. Trait bounds are the types of types. Sometimes you may need to use the <T as Trait>
syntax to use the assciated types of the Trait
The principal way to compute complex types is to use recursion. The list
and num
modules make use of it extensively.