Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 1.89 KB

File metadata and controls

65 lines (45 loc) · 1.89 KB
Fundle Macros Logo

Fundle Macros

crate.io docs.rs MSRV CI Coverage License This crate was developed as part of the Oxidizer project

Macros to support the fundle crate.

Macros

#[bundle]

Transforms structs into type-safe builders with dependency injection support.

#[fundle::bundle]
pub struct AppState {
   logger: Logger,
   database: Database,
}

Generates builder methods and a select macro for dependency access.

#[deps]

Creates dependency parameter structs with automatic From<T> implementations.

#[fundle::deps]
pub struct ServiceDeps {
    logger: Logger,
    database: Database,
}

Generates From<T> where T: AsRef<Logger> + AsRef<Database>.

#[newtype]

Creates newtype wrappers with automatic trait implementations.

#[newtype]
pub struct DatabaseLogger(Logger);

Generates Clone, From<T: AsRef<Logger>>, Deref, and DerefMut.


This crate was developed as part of The Oxidizer Project. Browse this crate's source code.