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)