diff --git a/src/resource.ml b/src/resource.ml new file mode 100644 index 0000000..fed5e93 --- /dev/null +++ b/src/resource.ml @@ -0,0 +1,9 @@ +type 'a t = ([> `Mem_fd ] as 'a) Eio.Resource.t + +type ('t, _, _) Eio.Resource.pi += + | T : ('t, 't -> Low_level.Fd.t, [> `Mem_fd ]) Eio.Resource.pi + +let fd (Eio.Resource.T (t, ops)) = Eio.Resource.get ops T t + +let fd_opt (Eio.Resource.T (t, ops)) = + match Eio.Resource.get_opt ops T with Some f -> Some (f t) | None -> None