Events 如何从主结构中存储的回调调用self函数?
具有分层应用程序:Events 如何从主结构中存储的回调调用self函数?,events,rust,Events,Rust,具有分层应用程序: main.rs |-- controller/ | |-- mod.rs | └-- one.rs └-- service/ |-- mod.rs └-- two.rs 有一个名为one的主控制器,默认情况下,该控制器加载two服务,以通过特定参数运行应用程序: //控制器/one.rs 使用create::service::two::TwoService; 发布结构控制器{ i18n:json::JsonValue, 双服务:双服务 } 嵌入式控制
main.rs
|-- controller/
| |-- mod.rs
| └-- one.rs
└-- service/
|-- mod.rs
└-- two.rs
有一个名为one
的主控制器,默认情况下,该控制器加载two
服务,以通过特定参数运行应用程序:
//控制器/one.rs
使用create::service::two::TwoService;
发布结构控制器{
i18n:json::JsonValue,
双服务:双服务
}
嵌入式控制器{
发布(板条箱)fn new()->OneController{
返回控制器{
双服务:双服务{
on_receive:OneController::receive_事件//TwoService{
回程服务{
on_receive:TwoService::on_receive_事件
};
}
//默认值为/dev/null
pub fn on_receive_事件(&self,_地址:&str){}
发布测试(&self){
//呼叫用户事件
自我接收(“x.x.x.x”);
}
}
主要问题是当需要在其他类中将一个可调用对象设置为var时。在python示例中,使用self.user_函数设置var,并且自动引用self,但在rust中,self是手动设置的
在控制器构造函数中,new
函数需要一个初始化的对象,但是new
函数没有self
对象,不能通过示例在_receive:self.receive_事件
上进行设置,设置静态函数引用,但不设置self上下文
从服务层,如何将泛型类声明为参数
pub结构服务{
接收上的发布:fn(?、和str)
}
我尝试使用fn(&mut self,&str)
和fn(&Any,&str)
,但不起作用(作为函数参数在语义上无效
)。该函数可以为任何控制器设置任何self
上下文
如何从
TwoService
进行回调并从controller设置ir?。所有打印仅从controller调用,服务层仅返回带有结果的信号。函数特性称为Fn
(大写F
),而不是Fn