aboutsummaryrefslogtreecommitdiffstats
path: root/lib/condition.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/condition.ml')
-rw-r--r--lib/condition.ml11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/condition.ml b/lib/condition.ml
index 67915b6..9c98df0 100644
--- a/lib/condition.ml
+++ b/lib/condition.ml
@@ -12,10 +12,13 @@ let of_string (s : string) = new literal (Sexplib.Sexp.Atom s)
let of_list (f : 'a -> serializable) (l : 'a list) : serializable =
new literal (Sexplib.Sexp.List (List.map (fun e -> (f e)#as_sexp) l))
-type t = { name : string; properties : (string, serializable) BatMap.t }
+type t = { name : string;
+ message : string;
+ properties : (string, serializable) BatMap.t }
-let condition name ?parent props =
+let condition name message ?parent props =
{ name;
+ message;
properties =
parent
|> Option.map (fun { properties; _ } -> properties)
@@ -26,13 +29,13 @@ let ( |=| ) name value = (fun p -> BatMap.add name value p)
let ( & ) l r = (fun p -> r (l p))
let empty = (fun p -> p)
-let to_sexp { name; properties } =
+let to_sexp { name; message; properties } =
let open Sexplib.Sexp in
let properties' =
BatMap.to_seq properties
|> BatSeq.map (fun (k, v) -> List [Atom k; v#as_sexp])
|> BatList.of_seq in
- List (Atom name :: properties')
+ List (Atom name :: Atom message :: properties')
let to_string e = (* FIXME *)
Sexplib.Sexp.to_string_hum (to_sexp e)