Skip to content

Latest commit

 

History

History
49 lines (46 loc) · 1.22 KB

README.md

File metadata and controls

49 lines (46 loc) · 1.22 KB

Typed is a procedural macro that is used for disassembling structs, enums and fns into their inner type components that are then accompanied with documentation and examples. The Typed structures will be wrapped into a module and reassigned with a name (default ty), this also goes for the static and generic fields.

Project is still under development

Current support:

  • struct
  • static types
  • generic types
  • enum
  • static types
  • generic types
  • fn
  • static types
  • generic types

Struct example

#[type_it]
struct Containter<T> {
    current: u8,
    buffer: Vec<u8>,
    another: T,
}
#[type_it]
struct Area(i32);
  • Will let you access the struct types as followed:
let current: Container::current = 10;
let buffer: Container::buffer = vec![current];
let another: <Container::ty<u8> as Container::proto>::another = 20;
let container: Container::ty<u8> = 
    Container::ty {
        current,
        buffer,
        another
    };
  • It's also possible to use it as following:
trait Trait: Container::proto {
    fn retrieve(&self) -> Container::proto::buffer;
    fn extend(&mut self, val: Container::proto::another); 
}