From 2f18b8a33cabd0ea666781ba048d0174b4dc5031 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Sun, 1 Jun 2025 17:12:06 +0200 Subject: Initial commit --- lib/virtuals/v_string/brr_string/dune | 4 ++++ lib/virtuals/v_string/brr_string/v_string.ml | 10 ++++++++++ lib/virtuals/v_string/dream_string/dune | 4 ++++ lib/virtuals/v_string/dream_string/v_string.ml | 6 ++++++ lib/virtuals/v_string/dune | 4 ++++ lib/virtuals/v_string/v_string.mli | 14 ++++++++++++++ 6 files changed, 42 insertions(+) create mode 100644 lib/virtuals/v_string/brr_string/dune create mode 100644 lib/virtuals/v_string/brr_string/v_string.ml create mode 100644 lib/virtuals/v_string/dream_string/dune create mode 100644 lib/virtuals/v_string/dream_string/v_string.ml create mode 100644 lib/virtuals/v_string/dune create mode 100644 lib/virtuals/v_string/v_string.mli (limited to 'lib/virtuals/v_string') diff --git a/lib/virtuals/v_string/brr_string/dune b/lib/virtuals/v_string/brr_string/dune new file mode 100644 index 0000000..0e3f942 --- /dev/null +++ b/lib/virtuals/v_string/brr_string/dune @@ -0,0 +1,4 @@ +(library + (name brr_string) + (libraries brr) + (implements v_string)) diff --git a/lib/virtuals/v_string/brr_string/v_string.ml b/lib/virtuals/v_string/brr_string/v_string.ml new file mode 100644 index 0000000..9aeb01f --- /dev/null +++ b/lib/virtuals/v_string/brr_string/v_string.ml @@ -0,0 +1,10 @@ +type t = Jstr.t + +let v : string -> t = Jstr.v +let s = Jstr.to_string +let concat : ?sep:t -> t list -> t = Jstr.concat + +let encode v = + match Brr.Uri.encode_component v with + | Ok s -> s + | Error _ -> Jstr.empty diff --git a/lib/virtuals/v_string/dream_string/dune b/lib/virtuals/v_string/dream_string/dune new file mode 100644 index 0000000..ff6c9b2 --- /dev/null +++ b/lib/virtuals/v_string/dream_string/dune @@ -0,0 +1,4 @@ +(library + (name dream_string) + (libraries dream) + (implements v_string)) diff --git a/lib/virtuals/v_string/dream_string/v_string.ml b/lib/virtuals/v_string/dream_string/v_string.ml new file mode 100644 index 0000000..14a4e33 --- /dev/null +++ b/lib/virtuals/v_string/dream_string/v_string.ml @@ -0,0 +1,6 @@ +type t = string + +let v : string -> t = Fun.id +let s : t -> string = Fun.id +let concat : ?sep:t -> t list -> t = fun ?(sep = "") -> StringLabels.concat ~sep +let encode = Dream.to_percent_encoded ?international:None diff --git a/lib/virtuals/v_string/dune b/lib/virtuals/v_string/dune new file mode 100644 index 0000000..badb7d3 --- /dev/null +++ b/lib/virtuals/v_string/dune @@ -0,0 +1,4 @@ +(library + (name v_string) + (virtual_modules v_string) + (default_implementation dream_string)) diff --git a/lib/virtuals/v_string/v_string.mli b/lib/virtuals/v_string/v_string.mli new file mode 100644 index 0000000..267dbf2 --- /dev/null +++ b/lib/virtuals/v_string/v_string.mli @@ -0,0 +1,14 @@ +type t +(** + This module provide a common signature between the server and javascript + side in order to create URL in the same way. +*) + +val v : string -> t +val s : t -> string +val concat : ?sep:t -> t list -> t + +val encode : t -> t +(** Encode an element of the url by percent-encoding. The function is + expected to encode "/" as well. + *) -- cgit v1.2.3