]> matita.cs.unibo.it Git - helm.git/commitdiff
- added sample usage of get_opt method
authorStefano Zacchiroli <zack@upsilon.cc>
Fri, 16 Apr 2004 08:17:38 +0000 (08:17 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Fri, 16 Apr 2004 08:17:38 +0000 (08:17 +0000)
- added method get_opt_default (like get_opt with an additional default
  value)

helm/ocaml/registry/helm_registry.ml
helm/ocaml/registry/helm_registry.mli

index 5569165a3591c96821da3377140bcc8ee2966967..35273608ff25c826a7eecbf84b85d4c0dd442eb9 100644 (file)
@@ -167,6 +167,10 @@ let set_opt setter ~key ~value =
   match value with
   | None -> unset key
   | Some value -> setter ~key ~value
+let get_opt_default getter default key =
+  match get_opt getter key with
+  | None -> default
+  | Some v -> v
 
 let add_validator ~key ~validator ~descr =
   let id = get_next_validator_id () in
index e1c0289a511c85eb127e1664fc1a0ac6187ff296..1f40b5453fa0e352b859e352b41b4b9426d53c23 100644 (file)
@@ -133,6 +133,12 @@ val set_string_list:  key:string -> value:string list -> unit
  * set_* function above. Returned value is a get (set) function typed as the
  * given getter (setter) whith optional values. None is returned for missing
  * keys and None can be assigned to a key removing it from the registry.
+ *
+ * Sample  usage:
+ *
+ *  match Helm_registry.get_opt Helm_registry.get_int "foo.bar" with
+ *  | Some i -> ...
+ *  | None -> ...
  *)
 
 val get_opt:
@@ -141,6 +147,8 @@ val get_opt:
 val set_opt:
   (key:string -> value:'a -> unit) (* setter *) ->
     key:string -> value:'a option -> unit
+val get_opt_default:  (* as get_opt with an additional default value *)
+  (string -> 'a) -> 'a -> string -> 'a
 
 (** {2 Validators}
  * Each key may have zero or more associated validators, that are predicates