aboutsummaryrefslogtreecommitdiff
path: root/docs/play/sources/zh_CN/2-writing3.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/play/sources/zh_CN/2-writing3.md')
-rw-r--r--docs/play/sources/zh_CN/2-writing3.md397
1 files changed, 0 insertions, 397 deletions
diff --git a/docs/play/sources/zh_CN/2-writing3.md b/docs/play/sources/zh_CN/2-writing3.md
deleted file mode 100644
index 252caab..0000000
--- a/docs/play/sources/zh_CN/2-writing3.md
+++ /dev/null
@@ -1,397 +0,0 @@
-好的,现在开始编写 `ResultFruits` 的渲染器
-
-```rust
-use mingling::prelude::*;
-
-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::*;
-
-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::*;
-
-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)
-}
-
-#[renderer] <<<<<<<<<< "和 #[chain] 类似,渲染器函数叫 #[renderer]"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits( <<<<<<<<<< "编写函数体"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits <<<<<<<<<< "声明接收 ResultFruits 类型"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {} <<<<<<<<<< "一般情况下,渲染器什么都不用返回"
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- <<<<<<<<<< "接下来在此处编写渲染逻辑"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = <<<<<<<<<< "首先我们先解包 ResultFruits"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = <<<<<<<<<< "pack! 宏会自动为 ResultFruits 实现 AsRef trait"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = result.as_ref(); <<<<<<<<<< "所以此处可以使用 as_ref()"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result; <<<<<<<<<< "当然,deref 也可以解包 ResultFruits"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
- for fruit in vec { <<<<<<<<<< "接下来,循环遍历 ResultFruits 中的水果字符串"
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
- for fruit in vec {
- <<<<<<<<<< "在循环中打印内容"
- }
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
- for fruit in vec {
- r_println!("{}", fruit) <<<<<<<<<< "使用 r_println 在循环中打印内容"
- }
-}
-
-gen_program!();
-```
-
----
-
-```rust
-use mingling::prelude::*; <<<<<<<<<< "r_println! 由 prelude 提供"
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
- for fruit in vec {
- r_println!("{}", fruit)
- }
-}
-
-gen_program!();
-```
-
----
-
-至此 `ResultFruits` 的渲染逻辑便已完成
-
-```rust
-use mingling::prelude::*;
-
-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)
-}
-
-#[renderer]
-fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
- for fruit in vec {
- r_println!("{}", fruit)
- }
-}
-
-gen_program!();
-```