Skip to content

Latest commit

 

History

History
32 lines (26 loc) · 813 Bytes

README.md

File metadata and controls

32 lines (26 loc) · 813 Bytes

serde_clj

Convert Rust data structures to/from (relatively) idiomatic Clojure data in memory using JNI.

See test/src/lib.rs for a usage example.

Example

#[derive(Serialize)]
struct MyStruct {
    number: i32,
    names: Vec<String>
}

becomes

{:number 3
 :names ["foo" "bar"]}

Notes/TODO

  • 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 of java.lang.Short, which might not be what you wanted and isn't very efficient.
  • More extensive tests.