6个版本
0.3.1 | 2020年11月20日 |
---|---|
0.3.0 | 2020年11月20日 |
0.2.0 | 2020年10月20日 |
0.1.2 | 2020年10月20日 |
2044 在 解析器实现 中排名
每月下载量 27
在 2 crates 中使用
28KB
438 行
mc-legacy-formatting
一个解析Minecraft 旧版格式化系统 的解析器,它仔细考虑了原版客户端实现的细节。
功能
- 基于迭代器的非分配式解析器
- 支持
#![no_std]
用法(将default-features
设置为false
) - 实现了整个规范以及原版客户端的细节(如处理带有
STRIKETHROUGH
样式的空白字符) - 用于将解析后的
Span
以美观格式打印到终端的帮助器 - 支持解析格式代码的任何起始字符(原版使用
§
,而许多社区工具使用&
)
示例
使用SpanIter
use mc_legacy_formatting::{SpanExt, Span, Color, Styles};
let s = "§4This will be dark red §oand italic";
let mut span_iter = s.span_iter();
assert_eq!(span_iter.next().unwrap(), Span::new_styled("This will be dark red ", Color::DarkRed, Styles::empty()));
assert_eq!(span_iter.next().unwrap(), Span::new_styled("and italic", Color::DarkRed, Styles::ITALIC));
assert!(span_iter.next().is_none());
使用自定义起始字符
use mc_legacy_formatting::{SpanExt, Span, Color, Styles};
let s = "&6It's a lot easier to type &b& &6than &b§";
let mut span_iter = s.span_iter().with_start_char('&');
assert_eq!(span_iter.next().unwrap(), Span::new_styled("It's a lot easier to type ", Color::Gold, Styles::empty()));
assert_eq!(span_iter.next().unwrap(), Span::new_styled("& ", Color::Aqua, Styles::empty()));
assert_eq!(span_iter.next().unwrap(), Span::new_styled("than ", Color::Gold, Styles::empty()));
assert_eq!(span_iter.next().unwrap(), Span::new_styled("§", Color::Aqua, Styles::empty()));
assert!(span_iter.next().is_none());
MSRV
当前最低支持的Rust版本为1.48.0。在需要时,这将升级到最新的稳定版本。
许可证
根据您的选择,受Apache许可证第2版或MIT许可证约束。除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献都应按上述方式双重许可,不得附加任何额外条款或条件。
依赖关系
~0–9.5MB
~52K SLoC