2 releases

0.1.2 Aug 28, 2023
0.1.1 Mar 23, 2023

#2271 in Parser implementations

MIT license

52KB
1K SLoC

Unofficial Rust implementation of Remo Cloud API parser.

概要

Nature RemoシリーズのCloud APIが返すJSONデータを解析し、各種情報を取り出すためのライブラリ (非公式)

サポートしているAPI

対応予定

  • 気が向いたら appliances の他のノードにも対応

使い方

nature_api::read_devicesembedded_io::Reader を実装した型への参照、ストリームの長さ、デバイス情報を処理するコールバックを指定して呼び出すと、Reader実装型から読み出したデータを解析してデバイス情報が確定するたびに、コールバックが呼び出されます。

use embedded_io::adapters;
use nature_api::read_devices;
use std::{fs::File, io::Read};

fn main() {
    let mut file = File::open("data/devices.json").unwrap();
    let file_length = file.metadata().unwrap().len();
    let mut reader = embedded_io::adapters::FromStd::new(&mut file);
    let mut num_devices = 0;
    read_devices(
        &mut reader,
        Some(file_length as usize),
        |device, sub_node| {
            if sub_node.is_none() {
                num_devices += 1;
            }
            println!("{:?} {:?}", device, sub_node);
        },
    )
    .unwrap();
    println!("num_devices: {}", num_devices);
}

コールバックの第一引数は &nature_api::Device, 第二引数は Option(&DeviceSubNode) となっています。

ライセンス

本ライブラリはMIT Licenseの下で使用可能です。

Dependencies

~4.5–6.5MB
~134K SLoC