1 个不稳定版本
0.1.0 | 2022年2月14日 |
---|
#1903 在 解析器实现
20KB
396 行
libtempest
天气flow/tempest JSON 记录的解析器定义。
这个库是扩展一个简单的 UDP 数据包监控器的结果,该监控器是为了帮助诊断与 WeatherFlow
Tempest 气象站的连接问题而编写的。来自中心的数据包包含 JSON 格式的字符串。相同的 JSON 格式也用于云 REST API 的结果中。
所有字段都被指定为公开的,以便这个库可以作为其他服务的连接器使用。
示例
use libtempest::Tempest;
use serde_json;
let buf = r#"
{
"serial_number": "SK-00008453",
"type":"evt_precip",
"hub_sn": "HB-00000001",
"evt":[1493322445]
}"#;
let rec: Tempest = serde_json::from_str(&buf).unwrap();
if let Tempest::EvtPrecip(x) = &rec {
println!("{:?}", x);
println!("{:?}", x.serial_number);
println!("{:?}", x.evt);
println!("{:?}", x.evt.epoch);
}
参考
许可证: Apache-2.0
lib.rs
:
天气flow/tempest JSON 记录的解析器定义。
这个库是扩展一个简单的 UDP 数据包监控器的结果,该监控器是为了帮助诊断与 WeatherFlow
Tempest 气象站的连接问题而编写的。来自中心的数据包包含 JSON 格式的字符串。相同的 JSON 格式也用于云 REST API 的结果中。
所有字段都被指定为公开的,以便这个库可以作为其他服务的连接器使用。
示例
use libtempest::Tempest;
use serde_json;
let buf = r#"
{
"serial_number": "SK-00008453",
"type":"evt_precip",
"hub_sn": "HB-00000001",
"evt":[1493322445]
}"#;
let rec: Tempest = serde_json::from_str(&buf).unwrap();
if let Tempest::EvtPrecip(x) = &rec {
println!("{:?}", x);
println!("{:?}", x.serial_number);
println!("{:?}", x.evt);
println!("{:?}", x.evt.epoch);
}
参考
依赖
~0.7–1.6MB
~35K SLoC