crdt library in ocaml implementing json-joy
1(** Session ID constants and validation.
2
3 Session IDs are 53-bit safe integers used to identify different
4 replicas/clients in the CRDT system. *)
5
6(** Reserved session ID for system use *)
7let system = 0
8
9(** Session ID for server clock mode *)
10let server = 1
11
12(** Session ID for global/schema patches *)
13let global = 2
14
15(** Session ID for local-only data *)
16let local = 3
17
18(** Maximum valid session ID (53-bit limit for JavaScript compatibility) *)
19let max_id = 9007199254740991 (* 2^53 - 1 *)
20
21(** Check if a session ID is valid *)
22let is_valid sid = sid >= 0 && sid <= max_id
23
24(** Check if a session ID is reserved (0-3) *)
25let is_reserved sid = sid >= 0 && sid <= 3
26
27(** Check if a session ID is for user sessions *)
28let is_user sid = sid > 3 && sid <= max_id