fuga-remo-api

Crates.iofuga-remo-api
lib.rsfuga-remo-api
version0.1.2
sourcesrc
created_at2023-03-23 00:25:45.914445
updated_at2023-08-28 18:11:41.412206
descriptionUnofficial Remo Cloud API parser
homepage
repositoryhttps://github.com/ciniml/remo-api
max_upload_size
id817631
size78,723
Kenta IDA (ciniml)

documentation

README

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の下で使用可能です。

Commit count: 9

cargo fmt