···2525 - Major type 6: Tagged data item
2626 - Major type 7: Simple values and floating-point numbers
27272828- {2 Encoding Example}
2828+ {2 Encode/Decode Example}
29293030 {[
3131+ open Cbor
3232+3133 let encode_person name age =
3234 let buf = Buffer.create 64 in
3335 let writer = Bytesrw.Bytes.Writer.of_buffer buf in
3434- let enc = Cbor_rw.encoder writer in
3535- Cbor_rw.write_map_start enc 2;
3636- Cbor_rw.write_text enc "name";
3737- Cbor_rw.write_text enc name;
3838- Cbor_rw.write_text enc "age";
3939- Cbor_rw.write_int enc age;
4040- Cbor_rw.flush_encoder enc;
3636+ let enc = Binary.encoder writer in
3737+ Binary.write_map_start enc 2;
3838+ Binary.write_text enc "name";
3939+ Binary.write_text enc name;
4040+ Binary.write_text enc "age";
4141+ Binary.write_int enc age;
4242+ Binary.flush_encoder enc;
4143 Buffer.contents buf
4242- ]}
43444444- {2 Decoding Example}
4545+ let decode_person bytes =
4646+ let reader = Bytesrw.Bytes.Reader.of_string bytes in
4747+ let dec = Binary.decoder reader in
4848+ let _len = Binary.read_map_start dec in
4949+ let _k1 = Binary.read_text dec in
5050+ let v1 = Binary.read_text dec in
5151+ let _k2 = Binary.read_text dec in
5252+ let v2 = Binary.read_int dec in
5353+ (v1, v2)
45544646- {[
4747- let decode_person bytes =
4848- let reader = Bytesrw.Bytes.Reader.of_string bytes in
4949- let dec = Cbor_rw.decoder reader in
5050- let len = Cbor_rw.read_map_start dec in
5151- (* ... read key-value pairs ... *)
5555+ let () =
5656+ let bytes = encode_person "Alice" 30 in
5757+ let name, age = decode_person bytes in
5858+ assert (name = "Alice");
5959+ assert (age = 30L)
5260 ]} *)
53615462(** {1 CBOR Major Types}