diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-09-25 21:51:33 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-09-25 21:51:33 -0300 |
| commit | 584fbca6d920e9a9f91d451667f9380714ac2175 (patch) | |
| tree | a163b916a6f8cb550c8b38ceb01ab01558687a40 /lib/kernel/Namespace.ml | |
| parent | c7b754e96714eeeb9d315ee3de402d73a27d47db (diff) | |
| download | RNT-584fbca6d920e9a9f91d451667f9380714ac2175.tar.gz RNT-584fbca6d920e9a9f91d451667f9380714ac2175.zip | |
dune fmt
Diffstat (limited to '')
| -rw-r--r-- | lib/kernel/Namespace.ml | 59 |
1 files changed, 25 insertions, 34 deletions
diff --git a/lib/kernel/Namespace.ml b/lib/kernel/Namespace.ml index 728c307..340e813 100644 --- a/lib/kernel/Namespace.ml +++ b/lib/kernel/Namespace.ml @@ -1,39 +1,30 @@ -class namespace = object (self) - inherit Lifecycle.null - inherit Identity.of_id +class namespace = + object (self) + inherit Lifecycle.null + inherit Identity.of_id + method to_string = "namespace" + val entries : (string, Protocols.Handle.t) BatMap.t Atomic.t = Atomic.make BatMap.empty + method protocols = Protocols.[Directory.make self; Registry.make self] - method to_string = "namespace" + method update key reference value = + match + Utilities.Atomic.mswap entries (fun e -> + if BatMap.find_opt key e = reference then + match value with + | Some v -> Ok (BatMap.add key v e) + | None -> Ok (BatMap.remove key e) + else Error () ) + with + | Ok _ -> Ok true + | Error _ -> Ok false - val entries : (string, Protocols.Handle.t) BatMap.t Atomic.t = - Atomic.make BatMap.empty + method list = Atomic.get entries |> BatMap.keys |> BatFingerTree.of_enum |> Result.ok - method protocols = Protocols.[Directory.make self; Registry.make self] - - method update key reference value = - match - Utilities.Atomic.mswap entries - (fun e -> - if BatMap.find_opt key e = reference then - match value with - | Some v -> Ok (BatMap.add key v e) - | None -> Ok (BatMap.remove key e) - else - Error ()) - with - | Ok _ -> Ok true - | Error _ -> Ok false - - method list = - Atomic.get entries - |> BatMap.keys - |> BatFingerTree.of_enum - |> Result.ok - - method find key = - Atomic.get entries - |> BatMap.find_opt key - |> Utilities.Option.fmap Protocols.Handle.copy - |> Result.ok -end + method find key = + Atomic.get entries + |> BatMap.find_opt key + |> Utilities.Option.fmap Protocols.Handle.copy + |> Result.ok + end let make () = Protocols.Handle.make (new namespace) |
