11// CLI工具中的真实使用案例演示
22// 验证MoonProgress在实际命令行工具中的应用
33
4- /// 模拟文件下载CLI工具
4+ ///| 模拟文件下载CLI工具
55fn demo_file_download () -> Unit {
66 println ("📥 文件下载工具演示" )
77 println ("下载文件: large_dataset.zip (1000MB)" )
8-
98 let pb = @MoonProgress/src .new (1000 )
109 .set_desc ("下载" )
1110 .set_unit ("MB" )
1211 .set_show_percent (true )
1312 .set_show_rate (true )
1413 .set_show_count (true )
15-
1614 let mut downloaded = 0
1715 let download_speeds = [45 , 52 , 48 , 61 , 55 , 49 , 58 , 63 , 57 , 44 ]
18-
1916 for speed in download_speeds {
2017 // 模拟下载一个数据块(实际业务逻辑在这里)
2118 downloaded = downloaded + speed
22-
19+
2320 // 进度条只负责显示当前状态
2421 println (pb .update (downloaded ).render ())
2522 }
26-
2723 println ("✅ 下载完成!" )
2824}
2925
30- /// 模拟数据处理CLI工具
26+ ///| 模拟数据处理CLI工具
3127fn demo_data_processing () -> Unit {
3228 println ("\n 🔄 数据处理工具演示" )
3329 println ("处理用户数据: 50000条记录" )
34-
3530 let pb = @MoonProgress/src .new (50000 )
3631 .set_desc ("处理用户数据" )
3732 .set_unit ("records" )
3833 .set_show_percent (true )
3934 .set_show_eta (true )
4035 .set_show_count (true )
41-
4236 let batch_sizes = [5000 , 8000 , 12000 , 10000 , 7000 , 8000 ]
4337 let mut processed = 0
44-
4538 for batch_size in batch_sizes {
4639 // 模拟处理一批数据(实际业务逻辑在这里)
4740 processed = processed + batch_size
48-
41+
4942 // 进度条显示处理进度
5043 println (pb .update (processed ).render ())
5144 }
52-
5345 println ("✅ 数据处理完成!" )
5446}
5547
56- /// 模拟测试运行器CLI工具
48+ ///| 模拟测试运行器CLI工具
5749fn demo_test_runner () -> Unit {
5850 println ("\n 🧪 测试运行器演示" )
5951 println ("运行测试套件: 150个测试用例" )
60-
6152 let pb = @MoonProgress/src .new (150 )
6253 .set_desc ("运行测试" )
6354 .set_prefix ("进度" )
6455 .set_show_percent (true )
6556 .set_show_count (true )
6657 .set_width (30 )
67-
6858 let test_batches = [15 , 23 , 18 , 27 , 22 , 19 , 26 ]
6959 let mut completed = 0
70-
7160 for batch in test_batches {
7261 // 模拟运行一批测试(实际测试逻辑在这里)
7362 completed = completed + batch
74-
63+
7564 // 进度条显示测试进度
7665 println (pb .update (completed ).render ())
7766 }
78-
7967 println ("✅ 所有测试通过!" )
8068}
8169
82- /// 模拟构建工具CLI
70+ ///| 模拟构建工具CLI
8371fn demo_build_tool () -> Unit {
8472 println ("\n 🔨 构建工具演示" )
8573 println ("编译项目: 200个源文件" )
86-
8774 let pb = @MoonProgress/src .new (200 )
8875 .set_desc ("编译" )
8976 .set_suffix ("files" )
9077 .set_show_percent (true )
9178 .set_show_count (true )
9279 .set_fill ('■' )
9380 .set_empty ('□' )
94-
9581 let compile_batches = [25 , 35 , 40 , 30 , 28 , 22 , 20 ]
9682 let mut compiled = 0
97-
9883 for batch in compile_batches {
9984 // 模拟编译一批文件(实际编译逻辑在这里)
10085 compiled = compiled + batch
101-
86+
10287 // 进度条显示编译进度
10388 println (pb .update (compiled ).render ())
10489 }
105-
10690 println ("✅ 构建成功!" )
10791}
10892
109- /// 演示真实世界的使用场景
93+ ///| 演示真实世界的使用场景
11094fn demo_real_world_usage () -> Unit {
11195 println ("\n 💼 真实CLI工具集成演示" )
112-
96+
11397 // 场景1:开箱即用 - 3行代码
11498 println ("1. 最简使用(3行代码):" )
11599 let simple_pb = @MoonProgress/src .new (100 ).update (65 )
116100 println (" " + simple_pb .render ())
117-
101+
118102 // 场景2:配置丰富但仍然简单
119103 println ("\n 2. 丰富配置但仍简单:" )
120104 let rich_pb = @MoonProgress/src .new (200 )
@@ -124,28 +108,32 @@ fn demo_real_world_usage() -> Unit {
124108 .set_show_rate (true )
125109 .update (150 )
126110 println (" " + rich_pb .render ())
127-
111+
128112 // 场景3:演示时间无关性
129113 println ("\n 3. 证明时间无关性(连续更新):" )
130- let mut pb = @MoonProgress/src .new (10 ).set_desc ("快速更新" ).set_show_percent (true )
114+ let mut pb = @MoonProgress/src .new (10 )
115+ .set_desc ("快速更新" )
116+ .set_show_percent (true )
131117 for i = 0 ; i <= 10 ; i = i + 1 {
132118 pb = pb .update (i )
133119 println (" " + pb .render ())
134120 }
135121}
136122
137- /// 主函数:展示所有CLI工具用例
123+ ///| 主函数:展示所有CLI工具用例
138124fn main {
139125 println ("🌙 MoonProgress - CLI工具真实使用案例" )
140126 println ("==================================================" )
141-
142127 demo_file_download ()
143128 demo_data_processing ()
144129 demo_test_runner ()
145130 demo_build_tool ()
146131 demo_real_world_usage ()
147-
148132 println ("\n 🎉 所有演示完成!" )
149- println ("💡 如你所见,MoonProgress完美适用于各种CLI工具的进度显示需求" )
150- println ("🔥 虚拟时间设计让它比tqdm更快、更简单、更可靠!" )
151- }
133+ println (
134+ "💡 如你所见,MoonProgress完美适用于各种CLI工具的进度显示需求" ,
135+ )
136+ println (
137+ "🔥 虚拟时间设计让它比tqdm更快、更简单、更可靠!" ,
138+ )
139+ }
0 commit comments