Skip to content

Commit

Permalink
Rename Interface => Handler
Browse files Browse the repository at this point in the history
  • Loading branch information
mbarbin committed Aug 5, 2024
1 parent fcce2fa commit 047b6f9
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 47 deletions.
80 changes: 40 additions & 40 deletions lib/vcs/src/vcs0.ml
Original file line number Diff line number Diff line change
Expand Up @@ -28,63 +28,63 @@ let of_result ~step = function
| Error error -> raise (Exn0.E (Err.init error ~step:(force step)))
;;

let load_file (Provider.T { t; interface }) ~path =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.File_system) in
let load_file (Provider.T { t; handler }) ~path =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.File_system) in
M.load_file t ~path
|> of_result ~step:(lazy [%sexp "Vcs.load_file", { path : Absolute_path.t }])
;;

let save_file ?perms (Provider.T { t; interface }) ~path ~file_contents =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.File_system) in
let save_file ?perms (Provider.T { t; handler }) ~path ~file_contents =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.File_system) in
M.save_file ?perms t ~path ~file_contents
|> of_result
~step:
(lazy [%sexp "Vcs.save_file", { perms : int option; path : Absolute_path.t }])
;;

let add (Provider.T { t; interface }) ~repo_root ~path =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Add) in
let add (Provider.T { t; handler }) ~repo_root ~path =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Add) in
M.add t ~repo_root ~path
|> of_result
~step:(lazy [%sexp "Vcs.add", { repo_root : Repo_root.t; path : Path_in_repo.t }])
;;

let init (Provider.T { t; interface }) ~path =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Init) in
let init (Provider.T { t; handler }) ~path =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Init) in
M.init t ~path |> of_result ~step:(lazy [%sexp "Vcs.init", { path : Absolute_path.t }])
;;

let current_branch (Provider.T { t; interface }) ~repo_root =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Rev_parse) in
let current_branch (Provider.T { t; handler }) ~repo_root =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Rev_parse) in
M.current_branch t ~repo_root
|> of_result ~step:(lazy [%sexp "Vcs.current_branch", { repo_root : Repo_root.t }])
;;

let current_revision (Provider.T { t; interface }) ~repo_root =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Rev_parse) in
let current_revision (Provider.T { t; handler }) ~repo_root =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Rev_parse) in
M.current_revision t ~repo_root
|> of_result ~step:(lazy [%sexp "Vcs.current_revision", { repo_root : Repo_root.t }])
;;

let commit (Provider.T { t; interface }) ~repo_root ~commit_message =
let module R = (val Provider.Interface.lookup interface ~trait:Trait.Rev_parse) in
let module C = (val Provider.Interface.lookup interface ~trait:Trait.Commit) in
let commit (Provider.T { t; handler }) ~repo_root ~commit_message =
let module R = (val Provider.Handler.lookup handler ~trait:Trait.Rev_parse) in
let module C = (val Provider.Handler.lookup handler ~trait:Trait.Commit) in
(let%bind () = C.commit t ~repo_root ~commit_message in
R.current_revision t ~repo_root)
|> of_result ~step:(lazy [%sexp "Vcs.commit", { repo_root : Repo_root.t }])
;;

let ls_files (Provider.T { t; interface }) ~repo_root ~below =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Ls_files) in
let ls_files (Provider.T { t; handler }) ~repo_root ~below =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Ls_files) in
M.ls_files t ~repo_root ~below
|> of_result
~step:
(lazy
[%sexp "Vcs.ls_files", { repo_root : Repo_root.t; below : Path_in_repo.t }])
;;

let rename_current_branch (Provider.T { t; interface }) ~repo_root ~to_ =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Branch) in
let rename_current_branch (Provider.T { t; handler }) ~repo_root ~to_ =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Branch) in
M.rename_current_branch t ~repo_root ~to_
|> of_result
~step:
Expand All @@ -93,8 +93,8 @@ let rename_current_branch (Provider.T { t; interface }) ~repo_root ~to_ =
"Vcs.rename_current_branch", { repo_root : Repo_root.t; to_ : Branch_name.t }])
;;

let name_status (Provider.T { t; interface }) ~repo_root ~changed =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Name_status) in
let name_status (Provider.T { t; handler }) ~repo_root ~changed =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Name_status) in
M.diff t ~repo_root ~changed
|> of_result
~step:
Expand All @@ -104,8 +104,8 @@ let name_status (Provider.T { t; interface }) ~repo_root ~changed =
, { repo_root : Repo_root.t; changed : Name_status.Changed.t }])
;;

let num_status (Provider.T { t; interface }) ~repo_root ~changed =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Num_status) in
let num_status (Provider.T { t; handler }) ~repo_root ~changed =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Num_status) in
M.diff t ~repo_root ~changed
|> of_result
~step:
Expand All @@ -114,21 +114,21 @@ let num_status (Provider.T { t; interface }) ~repo_root ~changed =
"Vcs.num_status", { repo_root : Repo_root.t; changed : Num_status.Changed.t }])
;;

let log (Provider.T { t; interface }) ~repo_root =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Log) in
let log (Provider.T { t; handler }) ~repo_root =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Log) in
M.all t ~repo_root
|> of_result ~step:(lazy [%sexp "Vcs.log", { repo_root : Repo_root.t }])
;;

let refs (Provider.T { t; interface }) ~repo_root =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Refs) in
let refs (Provider.T { t; handler }) ~repo_root =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Refs) in
M.show_ref t ~repo_root
|> of_result ~step:(lazy [%sexp "Vcs.refs", { repo_root : Repo_root.t }])
;;

let tree (Provider.T { t; interface }) ~repo_root =
let module L = (val Provider.Interface.lookup interface ~trait:Trait.Log) in
let module R = (val Provider.Interface.lookup interface ~trait:Trait.Refs) in
let tree (Provider.T { t; handler }) ~repo_root =
let module L = (val Provider.Handler.lookup handler ~trait:Trait.Log) in
let module R = (val Provider.Handler.lookup handler ~trait:Trait.Refs) in
let tree = Tree.create () in
(let%bind log = L.all t ~repo_root in
let%bind refs = R.show_ref t ~repo_root in
Expand All @@ -138,8 +138,8 @@ let tree (Provider.T { t; interface }) ~repo_root =
|> of_result ~step:(lazy [%sexp "Vcs.tree", { repo_root : Repo_root.t }])
;;

let set_user_name (Provider.T { t; interface }) ~repo_root ~user_name =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Config) in
let set_user_name (Provider.T { t; handler }) ~repo_root ~user_name =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Config) in
M.set_user_name t ~repo_root ~user_name
|> of_result
~step:
Expand All @@ -148,8 +148,8 @@ let set_user_name (Provider.T { t; interface }) ~repo_root ~user_name =
"Vcs.set_user_name", { repo_root : Repo_root.t; user_name : User_name.t }])
;;

let set_user_email (Provider.T { t; interface }) ~repo_root ~user_email =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Config) in
let set_user_email (Provider.T { t; handler }) ~repo_root ~user_email =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Config) in
M.set_user_email t ~repo_root ~user_email
|> of_result
~step:
Expand All @@ -158,8 +158,8 @@ let set_user_email (Provider.T { t; interface }) ~repo_root ~user_email =
"Vcs.set_user_email", { repo_root : Repo_root.t; user_email : User_email.t }])
;;

let show_file_at_rev (Provider.T { t; interface }) ~repo_root ~rev ~path =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Show) in
let show_file_at_rev (Provider.T { t; handler }) ~repo_root ~rev ~path =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Show) in
M.show_file_at_rev t ~repo_root ~rev ~path
|> of_result
~step:
Expand All @@ -179,8 +179,8 @@ let make_git_err_step ?env ?run_in_subdir ~repo_root ~args () =
}]
;;

let git ?env ?run_in_subdir (Provider.T { t; interface }) ~repo_root ~args ~f =
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Git) in
let git ?env ?run_in_subdir (Provider.T { t; handler }) ~repo_root ~args ~f =
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Git) in
let cwd =
Repo_root.append repo_root (Option.value run_in_subdir ~default:Path_in_repo.root)
in
Expand All @@ -192,12 +192,12 @@ module Private = struct
let git
?env
?(run_in_subdir = Path_in_repo.root)
(Provider.T { t; interface })
(Provider.T { t; handler })
~repo_root
~args
~f
=
let module M = (val Provider.Interface.lookup interface ~trait:Trait.Git) in
let module M = (val Provider.Handler.lookup handler ~trait:Trait.Git) in
let cwd = Repo_root.append repo_root run_in_subdir in
M.git ?env t ~cwd ~args ~f
;;
Expand Down
2 changes: 1 addition & 1 deletion lib/vcs_git/src/vcs_git.ml
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ module Impl = struct
end

let create ~env =
Vcs.create (Provider.T { t = Impl.create ~env; interface = Impl.interface () })
Vcs.create (Provider.T { t = Impl.create ~env; handler = Impl.handler () })
;;
4 changes: 1 addition & 3 deletions lib/vcs_git_blocking/src/vcs_git_blocking.ml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,4 @@ module Impl = struct
include Vcs_git_cli.Make (Runtime)
end

let create () =
Vcs.create (Provider.T { t = Impl.create (); interface = Impl.interface () })
;;
let create () = Vcs.create (Provider.T { t = Impl.create (); handler = Impl.handler () })
4 changes: 2 additions & 2 deletions lib/vcs_git_cli/src/vcs_git_cli.ml
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ module Make (Runtime : Runtime.S) = struct
module Show = Show.Make (Runtime)
end

let interface () : (t, [> Trait.t ]) Provider.Interface.t =
Provider.Interface.make
let handler () : (t, [> Trait.t ]) Provider.Handler.t =
Provider.Handler.make
[ Provider.Trait.implement Vcs.Trait.Add ~impl:(module Impl.Add)
; Provider.Trait.implement Vcs.Trait.Branch ~impl:(module Impl.Branch)
; Provider.Trait.implement Vcs.Trait.Commit ~impl:(module Impl.Commit)
Expand Down
2 changes: 1 addition & 1 deletion lib/vcs_git_cli/src/vcs_git_cli.mli
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ end
module Make (Runtime : Runtime.S) : sig
type t = Runtime.t

val interface : unit -> (t, [> Trait.t ]) Provider.Interface.t
val handler : unit -> (t, [> Trait.t ]) Provider.Handler.t

(** {1 Individual implementations} *)

Expand Down

0 comments on commit 047b6f9

Please sign in to comment.