首页/新闻资讯/正文详情

rust: 枚举

发布时间:2026/9/26 1:55:31 来源:云帆数科 栏目:资讯中心
rust: 枚举
//!# encoding: utf-8 //!# 版权所有 2026 ©涂聚文有限公司™ ® //!# 许可信息查看言語成了邀功盡責的功臣還需要行爲每日來值班嗎 //!# 描述Design Patterns //!# Author : geovindu,Geovin Du 涂聚文. //!# IDE : RustRover 2025.1.1 Rust rustc 1.98.1 //!# os : windows 10 //!# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j //!# Datetime : 2026/9/25 20:54 //!# User : geovindu //!# Product : RustRover //!# Project : RustDesignPatterns //!# File : check_patterns.rs // encoding: utf-8 // 版权所有 2026 ©涂聚文有限公司™ ® // Author : geovindu,Geovin Du 涂聚文. // 设计模式枚举调度各bll demo对标Python CheckPatterns.py use crate::bll; use crate::lang::{PATTERN_ENUM_MAP,current_lang_code}; use tokio; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum DesignPattern { Memento, Command, State, TemplateMethod, Visitor, Strategy, Observe, Mediator, Iterator, ChainofResponsibility, Proxy, Flyweight, Facade, Decorator, Composite, Singleton, Prototype, Bridge, Adapter, Builder, AbstractFactory, Factory, SimpleFactory, FactoryMethod, NullObject, Interpreter, Registry, Borg, LazyEvaluation, Pool, ConditionVariable, Mutex, Monitor, ReadWriteLock, Semaphore, NBarrier, BoundedParallelism, Broadcast, Coroutines, Generators, Reactor, Parallelism, ProducerConsumer, FanIn, FanOut, Pipeline, WorkerPool, FuturesPromises, PublishSubscribe, PushPull, Bulkheads, CircuitBreaker, Deadline, FailFast, Handshaking, SteadyState, TimingFunctions, FunctionalOptions, CascadingFailures, ThreadPool, Watchdog, Barrier, Future, MessageQueue, RateLimiter, Retry, AntiGodObject, AntiSpaghetti, AntiLavaFlow, } impl DesignPattern { /// 枚举名称转中文对标Python _name_to_cn pub fn name_to_cn(self)-String{ let name format!({:?},self); let map PATTERN_ENUM_MAP.get().unwrap(); if let Some(arr) map.get(name.as_str()){ let idx match current_lang_code(){ 10, 21, _2, }; arr[idx].to_string() }else{ name } } /// 执行demo示例对标 show_example() pub fn show_example(self){ println!(\n 展示【{} Pattern{}】示例 ,format!({:?},self),self.name_to_cn()); match self { DesignPattern::Memento bll::memento_bll::MementoBll::demo(), DesignPattern::Command bll::command_bll::CommandBll::demo(), DesignPattern::State bll::state_bll::StateBll::demo(), DesignPattern::TemplateMethod bll::templatemethod_bll::TemplateMethodBll::demo(), DesignPattern::Visitor bll::visitor_bll::VisitorBll::demo(), DesignPattern::Strategy bll::strategy_bll::StrategyBll::demo(), DesignPattern::Observe bll::observe_bll::ObserveBll::demo(), DesignPattern::Mediator bll::mediator_bll::MediatorBll::demo(), DesignPattern::Iterator bll::iterator_bll::IteratorBll::demo(), DesignPattern::ChainofResponsibility bll::chainofresponsibility_bll::ChainofResponsibilityBll::dudemo(), DesignPattern::Proxy bll::proxy_bll::ProxyBll::demo(), DesignPattern::Flyweight bll::flyweight_bll::FlyweightBll::demo(), DesignPattern::Facade bll::facade_bll::FacadeBll::demo(), DesignPattern::Decorator bll::decorator_bll::DecoratorBll::demo(), DesignPattern::Composite bll::composite_bll::CompositeBll::demo(), DesignPattern::Singleton bll::singleton_bll::SingletonBll::demo(), DesignPattern::Prototype bll::prototype_bll::PrototypeBll::demo(), DesignPattern::Bridge bll::bridge_bll::BridgeBll::demo(), DesignPattern::Adapter bll::adapter_bll::AdapterBll::demo(), DesignPattern::Builder bll::builder_bll::BuilderBll::demo(), DesignPattern::AbstractFactory bll::abstractfactory_bll::AbstractFactoryBll::demo(), DesignPattern::Factory bll::factory_bll::FactoryBll::demo(), DesignPattern::SimpleFactory bll::simplefactory_bll::SimpleFactoryBll::demo(), DesignPattern::FactoryMethod bll::factorymethod_bll::FactoryMethodBll::demo(), DesignPattern::NullObject bll::nullobject_bll::NullObjectBll::demo(), DesignPattern::Interpreter bll::interpreter_bll::InterpreterBll::demo(), DesignPattern::Registry bll::registry_bll::RegistryBll::demo(), DesignPattern::ConditionVariable bll::conditionvariable_bll::ConditionVariableBll::demo(), DesignPattern::Mutex bll::mutex_bll::MutexBll::demo(), DesignPattern::Monitor bll::monitor_bll::MonitorBll::demo(), DesignPattern::ReadWriteLock bll::readwritelock_bll::ReadWriteLockBll::demo(), DesignPattern::Semaphore bll::semaphore_bll::SemaphoreBll::demo(), DesignPattern::NBarrier bll::nbarrier_bll::NBarrierBll::demo(), DesignPattern::BoundedParallelism bll::boundedparallelism_bll::BoundedParallelismBll::demo(), DesignPattern::Broadcast bll::broadcast_bll::BroadcastBll::demo(), DesignPattern::Coroutines { // 异步demotokio运行对标asyncio.run let rt tokio::runtime::Runtime::new().unwrap(); rt.block_on(bll::coroutines_bll::CoroutinesBll::demo()); } DesignPattern::Generators bll::generators_bll::GeneratorsBll::demo(), DesignPattern::Reactor bll::reactor_bll::ReactorBll::demo(), DesignPattern::Parallelism bll::parallelism_bll::ParallelismBll::demo(), DesignPattern::ProducerConsumer bll::producerconsumer_bll::ProducerConsumerBll::demo(), DesignPattern::FanIn bll::fanin_bll::FanInBll::demo(), DesignPattern::FanOut bll::fanout_bll::FanOutBll::demo(), DesignPattern::Pipeline bll::pipeline_bll::PipelineBll::demo(), DesignPattern::WorkerPool bll::workerpool_bll::WorkerPoolBll::demo(), DesignPattern::FuturesPromises bll::futurespromises_bll::FuturesPromisesBll::demo(), DesignPattern::PublishSubscribe bll::publishsubscribe_bll::PublishSubscribeBll::demo(), DesignPattern::PushPull bll::pushpull_bll::PushPullBll::demo(), DesignPattern::Bulkheads bll::bulkheads_bll::BulkheadsBll::demo(), DesignPattern::CircuitBreaker bll::circuitbreaker_bll::CircuitBreakerBll::demo(), DesignPattern::Deadline bll::deadline_bll::DeadlineBll::demo(), DesignPattern::FailFast bll::failfast_bll::FailFastBll::demo(), DesignPattern::Handshaking bll::handshaking_bll::HandshakingBll::demo(), DesignPattern::SteadyState bll::steadystate_bll::SteadyStateBll::demo(), DesignPattern::TimingFunctions bll::timingfunctions_bll::TimingFunctionsBll::demo(), DesignPattern::FunctionalOptions bll::functionaloptions_bll::FunctionalOptionsBll::demo(), DesignPattern::CascadingFailures bll::cascadingfailures_bll::CascadingFailuresBll::demo(), DesignPattern::ThreadPool bll::threadpool_bll::ThreadPoolBll::demo(), DesignPattern::Watchdog bll::watchdog_bll::WatchdogBll::demo(), DesignPattern::Barrier bll::barrier_bll::BarrierBll::demo(), DesignPattern::Future bll::future_bll::FutureBll::demo(), DesignPattern::MessageQueue bll::messagequeue_bll::MessageQueueBll::demo(), DesignPattern::RateLimiter bll::ratelimiter_bll::RateLimiterBll::demo(), DesignPattern::Retry bll::retry_bll::RetryBll::demo(), DesignPattern::AntiGodObject bll::antigodobject_bll::AntiGodObjectBll::demo(), DesignPattern::AntiSpaghetti bll::antispaghetti_bll::AntiSpaghettiBll::demo(), DesignPattern::AntiLavaFlow bll::antilavaflow_bll::AntiLavaFlowBll::demo(), DesignPattern::Borg unimplemented!(Borg模式待实现), DesignPattern::LazyEvaluation unimplemented!(LazyEvaluation模式待实现), DesignPattern::Pool unimplemented!(对象池简写模式待实现), } } /// 把枚举转为迭代列表用于菜单遍历 pub fn all() - static [DesignPattern] { [ DesignPattern::Memento, DesignPattern::Command, DesignPattern::State, DesignPattern::TemplateMethod, DesignPattern::Visitor, DesignPattern::Strategy, DesignPattern::Observe, DesignPattern::Mediator, DesignPattern::Iterator, DesignPattern::ChainofResponsibility, DesignPattern::Proxy, DesignPattern::Flyweight, DesignPattern::Facade, DesignPattern::Decorator, DesignPattern::Composite, DesignPattern::Singleton, DesignPattern::Prototype, DesignPattern::Bridge, DesignPattern::Adapter, DesignPattern::Builder, DesignPattern::AbstractFactory, DesignPattern::Factory, DesignPattern::SimpleFactory, DesignPattern::FactoryMethod, DesignPattern::NullObject, DesignPattern::Interpreter, DesignPattern::Registry, DesignPattern::Borg, DesignPattern::LazyEvaluation, DesignPattern::Pool, DesignPattern::ConditionVariable, DesignPattern::Mutex, DesignPattern::Monitor, DesignPattern::ReadWriteLock, DesignPattern::Semaphore, DesignPattern::NBarrier, DesignPattern::BoundedParallelism, DesignPattern::Broadcast, DesignPattern::Coroutines, DesignPattern::Generators, DesignPattern::Reactor, DesignPattern::Parallelism, DesignPattern::ProducerConsumer, DesignPattern::FanIn, DesignPattern::FanOut, DesignPattern::Pipeline, DesignPattern::WorkerPool, DesignPattern::FuturesPromises, DesignPattern::PublishSubscribe, DesignPattern::PushPull, DesignPattern::Bulkheads, DesignPattern::CircuitBreaker, DesignPattern::Deadline, DesignPattern::FailFast, DesignPattern::Handshaking, DesignPattern::SteadyState, DesignPattern::TimingFunctions, DesignPattern::FunctionalOptions, DesignPattern::CascadingFailures, DesignPattern::ThreadPool, DesignPattern::Watchdog, DesignPattern::Barrier, DesignPattern::Future, DesignPattern::MessageQueue, DesignPattern::RateLimiter, DesignPattern::Retry, DesignPattern::AntiGodObject, DesignPattern::AntiSpaghetti, DesignPattern::AntiLavaFlow, ] } }//!# encoding: utf-8 //!# 版权所有 2026 ©涂聚文有限公司™ ® //!# 许可信息查看言語成了邀功盡責的功臣還需要行爲每日來值班嗎 //!# 描述Design Patterns //!# Author : geovindu,Geovin Du 涂聚文. //!# IDE : RustRover 2025.1.1 Rust rustc 1.98.1 //!# os : windows 10 //!# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j //!# Datetime : 2026/9/25 20:52 //!# User : geovindu //!# Product : RustRover //!# Project : RustDesignPatterns //!# File : main.rs // encoding: utf-8 // 版权所有 2026 ©涂聚文有限公司™ ® // Author : geovindu,Geovin Du 涂聚文. // IDE : VS Code / RustRover // os : windows 10 // Project : pydesignpattern-rs use std::io; use controller::DesignPattern; use crate::lang::{init_lang_map,set_language}; mod controller; mod lang; mod bll; /// 返回 (序列号, OptionDesignPattern)0退出 fn select_design_pattern()-(usize,OptionDesignPattern){ println!({},lang::TITLE_MENU); println!({} 0/{} {},lang::PROMPT_INPUT_NUM,lang::KEY_QUIT,lang::TITLE_EXIT_OPT); let pattern_list DesignPattern::all(); for (idx,pat) in pattern_list.iter().enumerate(){ let display_name pat.name_to_cn(); println!({}. {}{:?},idx1,display_name,pat); } println!(0. {},lang::TITLE_EXIT_OPT); loop{ println!(\n{},lang::PROMPT_INPUT_NUM); let mut buf String::new(); io::stdin().read_line(mut buf).unwrap(); let input buf.trim(); if input 0 || input.eq_ignore_ascii_case(q){ println!( {},lang::MSG_EXIT_PROGRAM); return (0,None); } let Ok(choice) input.parse::usize() else { println!({},lang::MSG_INVALID_INPUT); continue; }; let max pattern_list.len(); if choice 1 choice max{ let selected pattern_list[choice-1]; let cn_name selected.name_to_cn(); println!({}{}对应{},lang::MSG_SELECTED_ITEM,choice,cn_name); return (choice,Some(selected)); }else{ println!({} 1-{},lang::MSG_INVALID_INPUT,max); } } } /// 是否继续选择 fn ask_continue()-bool{ loop{ println!({},lang::PROMPT_CONTINUE_ASK); let mut buf String::new(); io::stdin().read_line(mut buf).unwrap(); let input buf.trim().to_lowercase(); if input lang::KEY_YES{ return true; }else if input lang::KEY_NO{ println!( {},lang::MSG_EXIT_PROGRAM); return false; }else{ println!({} {}/{},lang::MSG_INVALID_INPUT,lang::KEY_YES,lang::KEY_NO); } } } fn main() { // 初始化语言映射 init_lang_map(); // 默认简体中文 set_language(1); println!({},lang::PROMPT_CHOOSE_LANG); let mut buf String::new(); io::stdin().read_line(mut buf).unwrap(); let code buf.trim().parse::u8().unwrap_or(1); set_language(code); println!({},lang::TITLE_MAIN); loop{ let (selected_num, selected_pattern) select_design_pattern(); if selected_num 0{ println!( {},lang::MSG_EXIT_PROGRAM); break; } let pat selected_pattern.unwrap(); let en_name format!({:?},pat); let cn_name pat.name_to_cn(); println!({},lang::MSG_SHOW_PATTERN_HEAD.replace({},{}).replace({},en_name).replace({},cn_name)); pat.show_example(); println!(\n 本次选择的序列号是{},selected_num); if !ask_continue(){ break; } } println!(hi,welcome geovindu.); }

相关推荐

数据库课程设计实战:B+树、查询优化器与2PL并发控制
数据库课程设计实战:B+树、查询优化器与2PL并发控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 1:55:31

K-Wave光声仿真实战:从声波方程到参数调优
K-Wave光声仿真实战:从声波方程到参数调优

简介:MATLAB 光声仿真工具箱 K-Wave 1.2.1 完整资源包,面向生物医学成像、材料科学和水声探测等领域的科研人员与工程师,用于光声效应数值模拟、声波传播计算及光声图像重建。压缩包共 619 个文件、6.51MB,包含 201 个 m 源程序与… · 2026/9/26 1:55:25

电力场景PoE温湿度传感器EMC选型实战指南
电力场景PoE温湿度传感器EMC选型实战指南

1. 项目概述:为什么电力项目环境监测必须死磕PoE温湿度传感器的EMC性能?在变电站、升压站、配网自动化终端柜这些典型电力场景里,我见过太多“看着挺好、一上电就罢工”的温湿度监测设备。去年某220kV智能变电站调试现场,12台标称… · 2026/9/26 1:55:25

前后端分离项目SM4加密传输数据实战指南
前后端分离项目SM4加密传输数据实战指南

写这篇东西的起因特别直白:我接了一个前后端分离的老项目,登录和提交订单的接口全部明文传输。前端把用户手机号、身份证号当查询参数拼在URL里,后端日志里能直接看到完整数据。老板的原话是“来波猛的”,意思就是别再补丁式修修补… · 2026/9/26 2:35:58

软著补正AIGC检出率高怎么办?处理流程与证明材料整理指南
软著补正AIGC检出率高怎么办?处理流程与证明材料整理指南

收到“文档鉴别材料AIGC检出率高”之后,我的处理流程和证明材料整理经验先说一下背景。我上周刚帮一个客户处理完软著补正,补正意见写得很直接:“经审查,该申请文档鉴别材料AIGC检测结果异常,检出率较高,请… · 2026/9/26 2:35:58

Windows触摸键盘深度解析:TabTip进程、配置与故障排查实战
Windows触摸键盘深度解析:TabTip进程、配置与故障排查实战

1. 先搞清楚:触摸键盘到底是个什么组件1.1 触摸键盘解决的核心问题我第一次认真研究触摸键盘(Touch Keyboard),不是出于好奇,而是被逼的。当时公司配了一批二合一设备,Windows平板模式下没有物理键盘&#… · 2026/9/26 2:35:58

Java+MySQL图书管理系统:验证工程闭环能力的最小完整体
Java+MySQL图书管理系统:验证工程闭环能力的最小完整体

简介:这是一套基于Java与MySQL开发的完整图书管理系统实战项目,面向Java初学者及课程设计学生,解决图书馆业务场景下的用户权限管理、图书进销存与借阅查询等核心需求。资源包共270个文件,含46个Java源码、200个编译后Class文件、… · 2026/9/26 2:35:58

百度文心4.5海外爆火背后:从飞桨开源到TaoToken统一API接入的完整教程
百度文心4.5海外爆火背后:从飞桨开源到TaoToken统一API接入的完整教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 2:35:52

Linux Socket编程预备课:搞懂内核协议栈与TCP状态机制
Linux Socket编程预备课:搞懂内核协议栈与TCP状态机制

很多人学Linux下的socket编程,第一反应都是去查bind()、listen()、accept()的函数签名,照着网上示例敲一遍,发现能跑通就觉得自己会了。结果换了个业务场景——服务器要压并发、客户端要处理半包、连接莫名其妙被重置——立刻抓瞎。我在这个行… · 2026/9/26 2:35:52

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码