Rust widget
模块文档
文本小部件系统
模块概述
提供文本小部件的创建和组合功能,用于构建基于字符的终端界面元素。
核心功能函数
1. create
- 功能:创建带边框的文本小部件
- 参数:
create title content width height
title
:顶部边框显示的标题(字符串)content
:小部件内的文本内容(字符串)width
:小部件宽度(整数 >4)height
:小部件高度(整数 ≥3)
- 返回值:格式化的字符串小部件
- 错误:
- 参数类型/数量不符
- 宽度 < 标题长度
- 宽度 ≤4 或高度 <3
- 设计特点:
- 自动文本换行(使用
textwrap
库) - 标题居中显示
- 自适应边框长度
- 自动文本换行(使用
2. joinx
- 功能:水平拼接多个小部件
- 参数:
joinx widget1 widget2 ...
- 至少2个字符串类型的小部件
- 返回值:水平拼接后的字符串
- 错误:
- 参数数量 <2
- 非字符串参数
- 小部件高度不一致
- 处理流程:
- 验证所有小部件为字符串
- 检查所有小部件行数相同
- 逐行水平拼接
3. joiny
- 功能:垂直拼接多个小部件
- 参数:
joiny widget1 widget2 ...
- 至少2个字符串类型的小部件
- 返回值:垂直拼接后的字符串
- 错误:
- 参数数量 <2
- 非字符串参数
- 小部件宽度不一致
- 处理流程:
- 验证所有小部件为字符串
- 检查首行宽度一致
- 垂直拼接并移除回车符
使用示例
创建小部件
widget.create "系统信息" "CPU: 80%\n内存: 4.2/8GB" 30 5
输出:
┌────── 系统信息 ──────┐
│ CPU: 80% │
│ 内存: 4.2/8GB │
│ │
└─────────────────────┘
水平拼接
widget.joinx widget1 widget2
垂直拼接
widget.joiny widgetA widgetB
设计约束
- 尺寸限制:
- 最小宽度:5字符(含边框)
- 最小高度:3行(含边框)
- 编码要求:
- 仅支持UTF-8字符
- 自动过滤
\r
回车符
- 性能考虑:
- 避免不必要的字符串复制
- 使用迭代器处理大文本
- 错误处理:
- 提供详细的参数错误信息