2个版本
0.1.1 | 2023年7月13日 |
---|---|
0.1.0 | 2023年7月13日 |
#2182 in 算法
13KB
257 行
xtoken
Iterator
基于的no_std
XML标记化程序,使用memchr
.
设计目标
- 在字节切片上操作
- 最小验证
- 支持内联DTD声明
- 将整个输入划分为非空区间
示例
use xtoken::{Token, Tokenizer};
let tokens = Tokenizer::new(b"<x>Hello World!</x>").collect::<Vec<_>>();
assert_eq!(&tokens, &[
Token::Element(b"<x>"),
Token::Span(b"Hello World!"),
Token::ElementEnd(b"</x>"),
]);
let tokens = Tokenizer::new(b"<!DOCTYPE xml>").collect::<Vec<_>>();
assert_eq!(&tokens, &[
Token::Decl(b"<!DOCTYPE xml>")
]);
lib.rs
:
xtoken
Iterator
基于的no_std
XML标记化程序,使用memchr
.
设计目标
- 在字节切片上操作
- 最小验证
- 支持内联DTD声明
- 将整个输入划分为非空区间
示例
use xtoken::{Token, Tokenizer};
let tokens = Tokenizer::new(b"<x>Hello World!</x>").collect::<Vec<_>>();
assert_eq!(&tokens, &[
Token::Element(b"<x>"),
Token::Span(b"Hello World!"),
Token::ElementEnd(b"</x>"),
]);
let tokens = Tokenizer::new(b"<!DOCTYPE xml>").collect::<Vec<_>>();
assert_eq!(&tokens, &[
Token::Decl(b"<!DOCTYPE xml>")
]);
依赖
~170–315KB