Customise getter, setter, and updater names independently

This commit is contained in:
sneeker committed 2019-03-30 13:59:36 +00:00
1 parent 44554fc3c7
commit 36967cc123
2 files changed
+28 -5

No files matched your search

+12
View File
@@ -83,3 +83,15 @@ end
let () =
assert (Named.swatch_colour Named.{ item_colour = "grey"; item_size = 3 } = "grey");
assert (Typed.swatch_size Typed.{ item_colour = "grey"; item_size = 3 } = 3)
module Verbs = struct
type t = { colour : string }
[@@fieldglass generate ~get_prefix:read ~set_prefix:replace ~update_prefix:"revise"]
end
let () =
let original = Verbs.{ colour = "grey" } in
assert (Verbs.read_colour original = "grey");
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")