Lumesh Widget 模块

wiki libs

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
    • 非字符串参数
    • 小部件高度不一致
  • 处理流程
    1. 验证所有小部件为字符串
    2. 检查所有小部件行数相同
    3. 逐行水平拼接

3. joiny

  • 功能:垂直拼接多个小部件
  • 参数joiny widget1 widget2 ...
    • 至少2个字符串类型的小部件
  • 返回值:垂直拼接后的字符串
  • 错误
    • 参数数量 <2
    • 非字符串参数
    • 小部件宽度不一致
  • 处理流程
    1. 验证所有小部件为字符串
    2. 检查首行宽度一致
    3. 垂直拼接并移除回车符

使用示例

创建小部件

widget.create "系统信息" "CPU: 80%\n内存: 4.2/8GB" 30 5

输出:

┌────── 系统信息 ──────┐
│ CPU: 80%            │
│ 内存: 4.2/8GB       │
│                     │
└─────────────────────┘

水平拼接

widget.joinx widget1 widget2

垂直拼接

widget.joiny widgetA widgetB


设计约束

  1. 尺寸限制
    • 最小宽度:5字符(含边框)
    • 最小高度:3行(含边框)
  2. 编码要求
    • 仅支持UTF-8字符
    • 自动过滤\r回车符
  3. 性能考虑
    • 避免不必要的字符串复制
    • 使用迭代器处理大文本
  4. 错误处理
    • 提供详细的参数错误信息