#output #terminal #cli #ui-elements

grid_ui

一个用于构建基于终端的多元素 UI 的 Rust 库,无需麻烦

2 个版本

0.1.1 2021 年 9 月 30 日
0.1.0 2021 年 9 月 29 日

#563 in 命令行界面

每月下载 29

MIT 许可证

65KB
665

概述

这是一个用于更复杂 CLI 的轻量级库,具有多个元素。它旨在使分离多个 UI 元素更容易。

它也设计得非常灵活。利用 Rust 的 trait 接口,您可以使其从任何 CLI API 输出,尽管它最初是为 crossterm 设计的。

使用方法

预览包含您可以使用的所有内容(这并不多)。

我建议您查看文档。以下是每个结构的作用的简要说明

Grid

Alignment:用于输入的枚举。

DividerStrategy:用于决定文本在 DrawProcess 内部放置位置的枚举。

Frame:用于表示整个终端的结构,并“保存”维度数据。

SplitStrategy:用于决定如何分割网格的结构。

Grid:表示终端部分的区域。

Out

Action:用于表示移动光标或绘图的枚举。

Handler:一个用于将结构转换为输出的 trait。

SafeHandler:一个用于不返回错误的 handler trait。

OutToString:一个将文本写入字符串而不考虑位置的 handler。

StringBuffer:一个将文本写入字符串向量并考虑位置的 handler。

Process

DrawProcess:表示已被“激活”的终端块。可以添加文本然后打印。

Trim

FormatError:表示格式问题。目前仅在文本空间不足时返回。

TrimStrategy:一个用于将文本转换为修剪文本(适合 DrawProcess 的文本)的 trait。

Ignore:一个忽略文本是否适合的 TrimStrategy。仅用于调试和示例目的。

Split:一个如果文本不适合就将其拆分为多行的 TrimStrategy。

Truncate:一个移除所有不适合的文本的 TrimStrategy。

TrimmedText:TrimStrategy 的输出。

状态

应该完成。

已完成的功能

  1. 基本功能
  2. 与其他 API 一起使用的能力
  3. 清除 DrawProcess 以再次使用的功能

正在开发的功能

  1. 替换/删除 DrawProcess 的单独行
  2. 如果某个部分不合适,强制“挤压”代码的选项
  3. 手动设置行而不是推它们(并处理冲突 - 可能还需要一个额外的特性:OneLineTrimStrategy?)

将要添加的功能

  1. 支持 Ansii 代码

许可证

本项目采用 MIT 许可证。

(LICENSE-MIThttp://opensource.org/licenses/MIT)

变更日志

v 0.1.1: 更新 DrawProcess 添加 clear 函数。修复了文档中一个被删除的函数被调用的错误。

v 0.1.0: 初始提交

依赖项

~0.5–1.3MB
~21K SLoC