Convert Rust data structures to/from (relatively) idiomatic Clojure data in memory using JNI.
See test/src/lib.rs for a usage example.
#[derive(Serialize)]
struct MyStruct {
number: i32,
names: Vec<String>
}
becomes
{:number 3
:names ["foo" "bar"]}
- Unsigned integers serialize to the 'next biggest' type (except u64, which becomes i64), since Java doesn't really support unsigned.
- TODO: convert to/from BigInt where necessary.
- If you want to serialize a
Vec<u8>
, you should annotate or wrap the field with serde_bytes, or you will end up with a vector ofjava.lang.Short
, which might not be what you wanted and isn't very efficient. - More extensive tests.