ocaml-opentelemetry/src/ambient-context/eio/opentelemetry_ambient_context_eio.ml
Shon Feder fb4795a44c
Fix an unused value warning
Fixes

```
File "src/ambient-context/eio/opentelemetry_ambient_context_eio.ml", line 1, characters 0-33:
1 | module TLS = Thread_local_storage
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning 60 [unused-module]: unused module TLS.
```
2025-06-07 11:28:52 -04:00

39 lines
878 B
OCaml

module Fiber = Eio.Fiber
open struct
let _internal_key : Hmap.t Fiber.key = Fiber.create_key ()
let ( let* ) = Option.bind
end
module M = struct
let name = "Storage_eio"
let[@inline] get_map () = Fiber.get _internal_key
let[@inline] with_map m cb = Fiber.with_binding _internal_key m cb
let create_key = Hmap.Key.create
let get k =
let* context = get_map () in
Hmap.find k context
let with_binding k v cb =
let new_context =
match get_map () with
| None -> Hmap.singleton k v
| Some old_context -> Hmap.add k v old_context
in
with_map new_context cb
let without_binding k cb =
let new_context =
match get_map () with
| None -> Hmap.empty
| Some old_context -> Hmap.rem k old_context
in
with_map new_context cb
end
let storage () : Opentelemetry_ambient_context.storage = (module M)