LINUX.ORG.RU

OCAML: сереализация данных


0

0

Есть свой тип данных, запись и т.д. Нужно получить строку (последовательность байт), чтоб все побайтно совпадало, как в моем типе (в общем как в С структуре). Marshal.to_string делает это как-то по-своему алгоритму (либо я чего-то недопонимаю). Так как все-таки сабж сделать ?

anonymous

libsexplib думаю спасет.

пользоваться как-то так: 

[---8<---]

TYPE_CONV_PATH "test";;

open Sexplib;;
open Sexp;;
open Conv;;

type t = S of string | I of int with sexp;;

let ts = S "test";;

let ti = I 1;;

let _ =
  print_endline (to_string (sexp_of_t ts));
  print_endline (to_string (sexp_of_t ti))
;;

[---8<---]

ocamlc -pp "camlp4o -I `ocamlfind query type-conv` \
  -I `ocamlfind query sexplib` pa_type_conv.cmo bigarray.cma \
  pa_sexp_conv.cmo" -I `ocamlfind query sexplib` \
  -I `ocamlfind query type-conv` nums.cma bigarray.cma \
  -I +camlp4 sexplib.cma test.ml

Rastafarra ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.