Support source-first setters and configurable updater arguments
This commit is contained in:
2 files changed
+40
-8
No files matched your search
@@ -95,3 +95,24 @@ let () =
|
||||
assert (Verbs.read_colour (Verbs.replace_colour "blue" original) = "blue");
|
||||
assert (Verbs.read_colour (Verbs.revise_colour ~f:(fun s -> s ^ "s") original) = "greys");
|
||||
assert (Fieldglass.view Verbs._colour original = "grey")
|
||||
|
||||
module Ordered = struct
|
||||
type t = { count : int }
|
||||
[@@fieldglass generate ~self_arg_first ~func_named_arg:change]
|
||||
end
|
||||
|
||||
module Positional = struct
|
||||
type t = { count : int }
|
||||
[@@fieldglass generate ~self_arg_first ~func_no_named_arg]
|
||||
end
|
||||
|
||||
module Last = struct
|
||||
type t = { count : int } [@@fieldglass generate ~func_no_named_arg]
|
||||
end
|
||||
|
||||
let () =
|
||||
assert (Ordered.set_count Ordered.{ count = 1 } 2 = Ordered.{ count = 2 });
|
||||
assert (Ordered.update_count Ordered.{ count = 1 } ~change:succ = Ordered.{ count = 2 });
|
||||
assert (Fieldglass.set Ordered._count 2 Ordered.{ count = 1 } = Ordered.{ count = 2 });
|
||||
assert (Positional.update_count Positional.{ count = 1 } succ = Positional.{ count = 2 });
|
||||
assert (Last.update_count succ Last.{ count = 1 } = Last.{ count = 2 })
|
||||
Reference in new issue
Block a user