Crates.io | clojure-reader |
lib.rs | clojure-reader |
version | 0.3.0 |
source | src |
created_at | 2024-06-18 13:39:40.485387 |
updated_at | 2024-12-03 12:06:30.456156 |
description | A Clojure reader |
homepage | |
repository | https://github.com/grinkers/clojure-reader |
max_upload_size | |
id | 1275476 |
size | 103,706 |
(Extensible Data Notation)
Stable minus 2 versions. Once stable (1.0.0), the plan is to indefinitely maintain the MSRV.
The following features are enabled by default. To disable use this crate without default features.
When using no_std, this crate relies on alloc
. You must supply your own #[global_allocator]
.
Pulls in the dependency ordered-float
for Edn::Double. Without this feature, parsing floating-point numbers will result in an Err.
The following features are not enabled by default. To enable them all, use with
clojure-reader = { features = ["full"] }
Enables implementation for serde's Serialize and Deserialize traits for convenient to/from rust structures.
See serde example
for tips/tricks (eg you'll probably want kebab-case
).
Note that EDN is more generic than rust, so this feature will silently pass over things that rust and serde cannot handle. For example
{:foo 42, 42 "bar"}
will pass over the k/v pair (42 "bar")
and transform :foo
to foo
.
If you need complete control, it is recommended to use the base read
and read_string
.
See get-nth example
for clojure-like navigation.
Enables parsing of arbitrary length/precision Ints and Decimals. Relies on bigdecimal
and num-bigint
crates.
See the pico example for a minimalistic example of using this crate with the raspberry pi pico (rp2040)