sdi 0.1.1

Rust statically resolved dependency injection lib
Documentation
  • Coverage
  • 66.67%
    2 out of 3 items documented2 out of 2 items with examples
  • Size
  • Source code size: 6.04 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 254.75 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 3s Average build duration of successful builds.
  • all releases: 3s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • Thaumy

sdi

Rust statically resolved dependency injection library

Usage

provide!

Register an statically resolved service expression indexed by key.

use sdi::{inject, provide};

#[derive(Debug, PartialEq)]
struct A;

impl A {
    pub fn new() -> A { A }
    provide!(A <- A::new());
}

assert_eq!(A::new(), inject!(A))

Provide by inject is also ok.

use sdi::{inject, provide};

#[derive(Debug, PartialEq)]
struct A;
provide!(A <- A);

#[derive(Debug, PartialEq)]
struct B(A);

impl B {
    pub fn new(a:A) -> B { B(a) }
    provide!(B <- B::new(inject!(A)));
}

assert_eq!(B::new(A), inject!(B))

inject!

Get an statically resolved service expression by key.

use sdi::{inject, provide};

#[derive(Debug, PartialEq)]
struct A;

impl A {
    pub fn new() -> A { A }
    provide!(A <- A::new());
}

assert_eq!(A::new(), inject!(A))