OCaml library for JSONfeed parsing and creation

remove eio dep

Changed files
+12 -12
.tangled
workflows
example
+1 -1
.tangled/workflows/build.yml
···
opam init --disable-sandboxing -any
- name: switch
command: |
-
opam install . --confirm-level=unsafe-yes --deps-only
+
opam install . --confirm-level=unsafe-yes --deps-only -t
- name: build
command: |
opam exec -- dune build --verbose
+3 -3
example/dune
···
(executable
(name feed_example)
(modules feed_example)
-
(libraries jsonfeed eio_main))
+
(libraries jsonfeed))
(executable
(name feed_parser)
(modules feed_parser)
-
(libraries jsonfeed eio_main))
+
(libraries jsonfeed))
(executable
(name feed_validator)
(modules feed_validator)
-
(libraries jsonfeed eio_main))
+
(libraries jsonfeed))
+8 -8
example/feed_example.ml
···
open Jsonfeed
-
(* Helper to write feed to Eio flow *)
-
let to_flow flow feed =
+
(* Helper to write feed to output channel *)
+
let to_file filename feed =
let s = Jsonfeed.to_string feed in
-
Eio.Flow.copy_string s flow
+
Out_channel.with_open_gen
+
[Open_wronly; Open_creat; Open_trunc; Open_text]
+
0o644
+
filename
+
(fun oc -> Out_channel.output_string oc s)
let create_blog_feed () =
(* Create some authors *)
···
feed
let main () =
-
Eio_main.run @@ fun env ->
-
(* Create blog feed *)
let blog_feed = create_blog_feed () in
Format.printf "Created blog feed: %a\n\n" Jsonfeed.pp blog_feed;
···
(String.sub json_string 0 (min 200 (String.length json_string)));
(* Serialize to file *)
-
let feed_path = Eio.Path.(env#fs / "blog-feed.json") in
-
Eio.Path.with_open_out ~create:(`Or_truncate 0o644) feed_path @@ fun flow ->
-
to_flow (flow :> Eio.Flow.sink_ty Eio.Resource.t) blog_feed;
+
to_file "blog-feed.json" blog_feed;
Format.printf "Wrote blog feed to blog-feed.json\n\n";
(* Create podcast feed *)