2个版本
0.1.1 | 2023年6月8日 |
---|---|
0.1.0 | 2023年6月7日 |
#866 in 过程宏
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