当前位置: 首页 > news >正文

泉州市建设局网站我要学网站建设

泉州市建设局网站,我要学网站建设,网站制作方案范文,crm销售模拟常用的几种函数调用CallBack的写法。测试调用都放在函数t6_call_back_task中。我正在学习Rust&#xff0c;有不对或者欠缺的地方&#xff0c;欢迎交流指正 type Callback std::sync::Arc<dyn Fn() Send Sync>; type CallbackReturnVal std::sync::Arc<dyn Fn…

模拟常用的几种函数调用CallBack的写法。测试调用都放在函数t6_call_back_task中。我正在学习Rust,有不对或者欠缺的地方,欢迎交流指正

type Callback = std::sync::Arc<dyn Fn() + Send + Sync>;
type CallbackReturnVal = std::sync::Arc<dyn Fn() -> Result<String, i32> + Send + Sync>;
type CallbackResult = std::sync::Arc<dyn Fn(Result<String, i32>) + Send + Sync>;pub(crate) trait EventListener {fn on_action1(&self, code: i32);fn on_action2(&self, val: String, code: i32);
}pub(crate) struct Executor {call_back: fn(),call_back2: core::option::Option<Callback>,call_back3: core::option::Option<CallbackReturnVal>,call_back4: core::option::Option<CallbackResult>,listener: Box<dyn EventListener + 'static>,
}struct DefaultEventListener;impl EventListener for DefaultEventListener {fn on_action1(&self, code: i32) {}fn on_action2(&self, val: String, code: i32) {}
}impl Executor {pub fn new() -> Self {let default_callback: fn() = || {println!("Default callback executed");};Executor {call_back: default_callback,call_back2: None,call_back3: None,call_back4: None,listener: Box::new(DefaultEventListener {}),}}pub fn set_call_back(&mut self, cb: fn()) {self.call_back = cb;}pub fn set_call_back2<CB>(&mut self, call_back: CB)where CB: Fn() + Send + Sync + 'static {self.call_back2 = Some(std::sync::Arc::new(call_back));}pub fn set_call_back3<CB>(&mut self, call_back: CB)where CB: Fn() -> Result<String, i32> + Send + Sync + 'static {self.call_back3 = Some(std::sync::Arc::new(call_back));}pub fn set_call_back4<CB>(&mut self, call_back: CB)where CB: Fn(Result<String, i32>) + Send + Sync + 'static {self.call_back4 = Some(std::sync::Arc::new(call_back));}pub fn set_call_back5(&mut self, listener: Box<dyn EventListener + 'static>) {self.listener = listener;}pub fn process_events(&self) {(self.call_back)();//call_back2if let Some(call_back2_type) = &self.call_back2 {call_back2_type();call_back2_type();} else {println!("No callback2 to execute.");}//call_back3if let Some(call_back3_type) = &self.call_back3 {let result = call_back3_type();} else {println!("No callback3 to execute.");}//call_back4if let Some(call_back4_type) = &self.call_back4 {let ok: Result<String, i32> = Result::Ok("success".to_string());let error_code: Result<String, i32> = Result::Err(-10);call_back4_type(ok);} else {println!("No callback4 to execute.");}//call_back5self.listener.on_action1(1);self.listener.on_action2("".to_string(), -1);}
}pub(crate) struct EventListenerImpl {}impl EventListener for EventListenerImpl {fn on_action1(&self, code: i32) {println!("-------on_action1--------code: {}", code);}fn on_action2(&self, val: String, code: i32) {println!("-------on_action2--------code: {} , val: {}", code, val);}
}pub(crate) fn t6_call_back_task() {let mut executor = Executor::new();executor.set_call_back(|| {println!("-------call_back----1----");});executor.set_call_back2(|| {println!("-------call_back----2----");});executor.set_call_back3(|| {println!("-------call_back----3---");Ok("Callback executed successfully!".to_string())});executor.set_call_back4(|result: Result<String, i32>| {println!("-------call_back----4----result: {:?}", result);});let event_listener = Box::new(EventListenerImpl {});executor.set_call_back5(event_listener);executor.process_events();
}
http://www.yayakq.cn/news/100067/

相关文章:

  • 济南做设计公司网站长沙企业网站开发
  • 重庆模板网站建站中移建设有限公司官方网站
  • 少儿教育网站建设价格建筑直聘网
  • 网站营销平台珠海网站建设贵公司
  • 电子商务网站建设的开发流程app的ui设计案例分析
  • 建设电子商务网站的基本步骤毕业设计做 什么网站好
  • 徐州手机网站营销公司哪家好太原制作网站的公司哪家好
  • 网站建设 中企动力 石家庄机械做卖产品网站
  • 专门做隐形眼镜的网站游戏优化软件
  • 游戏类网站备案公司手机网站开发
  • 如何做下载网站贵州互联网公司
  • 自做业务网站the word和 a wordpress
  • 福永做网站免费生成logo的软件
  • 网站重要性工作室logo设计
  • 上海公司做网站长春网站开发报价
  • 信息流广告公司有利于优化的网站建设
  • dw软件做二级连接网站洛阳市住房和城乡建设网站
  • seo查询爱站网小程序如何推广引流
  • 网站建站 免费楼市最新消息2024年房价走势
  • 公司网站建设入哪科目网站的内容建设
  • 公司做彩票网站违法吗windows优化大师win10
  • 怎么联系网站管理员c 小说网站开发教程
  • 手机版网站开发html5宁波北仑装修公司排行
  • 在哪个网站做简历比较好想做一个驾校的招生网站应该怎么做
  • 网站搜索不到了网站开发分类列表
  • 银川网站建设怎么样wordpress管理员评论在哪儿设置
  • wordpress 怎么添加插件自己怎么去做seo网站推广?
  • 网站前台页面的设计与实现职业教育培训机构排名前十
  • 宿松做网站wordpress好学吗
  • 做外贸网站的效果怎么样网页设计模板图片花简单