2个版本

0.1.1 2023年6月8日
0.1.0 2023年6月7日

#866 in 过程宏

MIT许可证

5KB

sdi

Rust静态解析依赖注入库

用法

provide!

注册一个由键索引的静态解析服务表达式。

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))

通过注入提供也是可以的。

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!

通过键获取一个静态解析服务表达式。

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))

依赖

~69KB