aboutsummaryrefslogtreecommitdiff
path: root/docs/play/sources/zh_CN/2-writing2.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/play/sources/zh_CN/2-writing2.md')
-rw-r--r--docs/play/sources/zh_CN/2-writing2.md527
1 files changed, 0 insertions, 527 deletions
diff --git a/docs/play/sources/zh_CN/2-writing2.md b/docs/play/sources/zh_CN/2-writing2.md
deleted file mode 100644
index 4a4d5fb..0000000
--- a/docs/play/sources/zh_CN/2-writing2.md
+++ /dev/null
@@ -1,527 +0,0 @@
-现在让我们为其创建行为注册的 `list` 子命令添加入口行为
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-<<<<<<<<<< "在此处创建链,用于接收 CMDList 传入的 EntryList"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain] <<<<<<<<<< "编写"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list( <<<<<<<<<< "创建函数体"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list(prev: EntryList <<<<<<<<<< "声明接收 EntryList 类型"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {} <<<<<<<<<< "返回 Next,这代表下一个类型"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {} <<<<<<<<<< "Next 是 ChainProcess<ThisProgram> 的别名"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!(); <<<<<<<<<< "Next 由 gen_program!() 生成"
-```
-
----
-
-我们需要一个包装类型用来包装 `handle_entry_list` 的结果
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-<<<<<<<<<< "我们在此处定义一个包装类型"
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits <<<<<<<<<< "使用 pack! 宏快速创建一个包装类型"
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>); <<<<<<<<<< "将 ResultFruits 包装为 Vec<String>"
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*; <<<<<<<<<< "pack! 由 prelude 提供"
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-现在,继续编辑 `handle_entry_list` 的行为
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
-
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- <<<<<<<<<< "在此处硬编码水果列表"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = <<<<<<<<<< "编写"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = vec![ <<<<<<<<<< "编写"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ]; <<<<<<<<<< "编写"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ];
- <<<<<<<<<< "接下来,在此处将 Vec<String> 包装成 ResultFruits 并返回"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ];
- ResultFruits::new(fruits) <<<<<<<<<< "编写"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain] vvvv <<<<<<<<<< "因为没使用 prev 传入的参数,所以将其忽略"
-fn handle_entry_list(prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ];
- ResultFruits::new(fruits)
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(_prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ];
- ResultFruits::new(fruits)
-}
-
-gen_program!();
-```
-
----
-
-好的,现在 `EntryList` 的行为便编写完成
-
-```rust
-use mingling::prelude::*;
-
-dispatcher!("list", CMDList => EntryList);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(CMDList);
- program.exec_and_exit();
-}
-
-pack!(ResultFruits = Vec<String>);
-
-#[chain]
-fn handle_entry_list(_prev: EntryList) -> Next {
- let fruits = vec![
- "Apple".to_string(),
- "Banana".to_string(),
- "Orange".to_string(),
- ];
- ResultFruits::new(fruits)
-}
-
-gen_program!();
-```