3 个版本 (稳定版)
1.1.0 | 2019年5月2日 |
---|---|
1.0.0 | 2019年5月2日 |
0.1.0 | 2019年5月2日 |
#22 在 #highlight
被 jg 使用
120KB
807 行
json-highlight-writer
一个用于 json-rust 对象的写入器,支持在打印 JSON 对象时高亮显示切片
用法
有两个公共函数
highlight
highlight 函数接收一个 JSON 对象和一个你希望高亮显示的切片向量。
use colored::*;
use json::*;
use json_highlight_writer::{highlight_with_colors, highlight};
let res = object!{
"code" => 200,
"success" => true,
"payload" => object!{
"features" => array![
"awesome",
"easyAPI",
"lowLearningCurve"
]
}
};
println!("{:#}", highlight(&res, vec![&res["code"], &res["payload"]["features"]]));
此代码将打印出整个 JSON 结构,其中代码字段和功能数组将以红色高亮显示。
highlight_with_colors
highlight_with_colors 函数接收一个 JSON 对象、一个你希望高亮显示的切片向量和匹配切片时循环的颜色向量。
println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));
println!("{:#}", highlight_with_colors(&res, vec![&res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));
此代码将打印出整个 JSON 结构两次,切片将以红色和绿色高亮显示。注意内部颜色高亮,用于在另一个匹配切片内部显示匹配的切片。
如果切片的数量多于指定的颜色数量,则高亮显示将循环通过向量。
println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));
highlight_with_colors 还可以接受一个用于 remainder(即与切片不重叠的 JSON 部分)的颜色。
println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), Some(Color::White)));
依赖关系
~0.2–7.5MB
~44K SLoC