package mirage-flow-lwt

  1. Overview
  2. Docs
Flow implementations and combinators for MirageOS specialized to lwt

Install

Dune Dependency

Authors

Maintainers

Sources

mirage-flow-v1.6.0.tbz
sha256=d6596e9bd2442023a3b2222db0a36fd6a97318e06853162c9938d9fab8cc63d3
sha512=2666268cb4e7208357083a733565e5f07e15ca77bd35b1a00c7fd1562b7abc8e1eb8ec1a5bd5782240993621e6bcaa7003f6143d77b8da09491e5c38b645faeb

README.md.html

mirag-flow -- Flow implementations and combinators for MirageOS

This repo contains generic operations over Mirage FLOW implementations.

Please consult the API documentation.

Example usage

In a top-level like utop:

# #require "mirage-flow";;
# #require "mirage-clock-unix";;
# #require "lwt.syntax";;

# let a = Mirage_flow.Fun.(make ~input:(input_string "hellooooo") ());;
val a : Mirage_flow.Fun.flow = <abstr>

# let buffer = String.make 20 ' ';;
val buffer : bytes = "                    "
# let b = Mirage_flow.Fun.(make ~output:(output_string buffer) ());;
val b : Mirage_flow.Fun.flow = <abstr>

# lwt results = Mirage_flow.copy (module Clock) (module Mirage_flow.Fun) a (module Mirage_flow.Fun) b ();;
val results : [ `Error of [ `Msg of bytes ] | `Ok of Mirage_flow.CopyStats.t ] =  `Ok {Mirage_flow.CopyStats.read_bytes = 9L; read_ops = 1L; write_bytes = 9L; write_ops = 1L; duration = 6.9141387939453125e-06}
# buffer;;
- : bytes = "hellooooo           "