Crates.io | fql-parser |
lib.rs | fql-parser |
version | 0.2.8 |
source | src |
created_at | 2022-02-14 15:35:29.156183 |
updated_at | 2022-07-19 03:14:03.604948 |
description | A parser for the Fauna Query Language (FQL). |
homepage | https://docs.fauna.com/fauna/current/api/fql/ |
repository | https://github.com/fauna-labs/fql-parser |
max_upload_size | |
id | 532272 |
size | 38,575 |
This repository contains unofficial patterns, sample code, or tools to help developers build more effectively with Fauna. All Fauna Labs repositories are provided “as-is” and without support. By using this repository or its contents, you agree that this repository may never be officially supported and moved to the Fauna organization.
This is a Rust crate and NPM package that parses raw FQL queries into the wire protocol format.
To use the parser, add the following to your Cargo.toml
:
[dependencies]
fql-parser = "0.2.0"
Then, in your code, import the crate:
use crate::fql_parser;
fn main() {
/* ... */
}
The se
module contains the function to serialize FQL strings to JSON
let fql = "Add(2, 2)";
let json = fql_parser::se::serialize_fql_query(fql);
println!("{}", json);
{"add":[2,2]}
The des
module contains functions to deserialize JSON into special Fauna types or FQL strings
let json = r#"{
"@ref": {
"id":"101",
"collection": {
"@ref":{
"id": "things",
"collection": {
"@ref": { "id": "collections"}
}
}
}
}
}"#;
let fql = fql_parser::des::to_fql_string(json);
println!("{}", fql);
Ref(Collection("things"),"101")
TODO
cargo build
# Publish to https://crates.io/crates/fql-parser
cargo publish
make build
npm publish