[−][src]Crate raystack
Overview
This crate provides functions which can query a SkySpark server, using
the Haystack REST API and the SkySpark REST API's eval
operation.
Some Haystack operations are not implemented
(watch* operations, pointWrite and invokeAction).
Usage
- Create a new rust project:
cargo new --bin my_project
- Put these dependencies in your Cargo.toml:
[dependencies] chrono = "0.4.7" chrono-tz = "0.5.1" raystack = "0.1.0" serde_json = "1.0.40" url = "1.7.2"
- Put this in
main.rs
to create and use aSkySparkClient
:use raystack::{ HaystackRest, SkySparkClient, SkySparkRest, ValueExt, }; use url::Url; fn main() { let url = Url::parse("https://www.example.com/api/projName/").unwrap(); let client = SkySparkClient::new(url, "username", "p4ssw0rd", None).unwrap(); let sites_grid = client.eval("readAll(site)").unwrap(); // Print the raw JSON: println!("{}", sites_grid.to_string_pretty()); // Working with the Grid struct: println!("All columns: {:?}", sites_grid.cols()); println!("first site id: {:?}", sites_grid.rows()[0]["id"].as_hs_ref().unwrap()); }
The Grid struct is a wrapper around the underlying JSON Value enum
provided by the serde_json
crate. See the
documentation for Value
for more information on how to query for data stored within it.
Modules
auth |
Structs
Coord | A Haystack Coord, representing a geographical coordinate. |
Error | Encapsulates all errors that can occur in this crate. |
Grid | A wrapper around a |
Number | A Haystack Number, encapsulating a scalar value and an optional unit value. The unit is represented as a string. |
ParseJsonGridError | Error denoting that a JSON value could not be parsed into a |
ParseNumberError | An error indicating that a |
ParseRefError | An error indicating that a |
ParseTagNameError | An error indicating that a |
Ref | A Haystack Ref. |
SkySparkClient | A client for interacting with a SkySpark server. |
TagName | A Haystack tag name. |
Enums
ErrorKind | Describes the kinds of errors that can occur in this crate. |
HisReadRange | Represents the different time range queries that can be sent
as part of the |
Traits
HaystackRest | Provides functions which correspond to some Haystack REST API operations. |
SkySparkRest | Provides functions which correspond to some SkySpark REST API operations. |
ValueExt | An extension trait for the |
Functions
is_tag_name | Return true if the string is a valid tag name. |