#[simple_factory]Expand description
为 trait 生成简单工厂实现的属性宏。
此宏应用于 trait 定义,会自动生成一个对应的工厂结构体。
生成的工厂结构体名为 {TraitName}Factory,并提供一个 create 方法,
该方法使用全局静态工厂来创建 trait 对象的实例。
注意:此宏生成的代码依赖于 rust_patterns crate,请确保在项目中添加该依赖。
§使用方法
ⓘ
use pattern_macros::simple_factory;
#[simple_factory]
pub trait MyTrait {
fn do_something(&self);
}也可以指定额外的 trait bound:
ⓘ
use pattern_macros::simple_factory;
#[simple_factory(Send + Sync)]
pub trait MyTrait {
fn do_something(&self);
}§生成的内容
宏会生成以下内容:
- 原始的 trait 定义
- 工厂结构体
{TraitName}Factory - 工厂的
create方法实现
create 方法签名:
ⓘ
pub fn create(
id: &str,
strategy: rust_patterns::FactoryFallback,
) -> Result<(&str, Box<dyn MyTrait>), rust_patterns::FactoryError>