diff options
Diffstat (limited to 'lib/error.ml')
| -rw-r--r-- | lib/error.ml | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/lib/error.ml b/lib/error.ml index b19aebb..4f1cecd 100644 --- a/lib/error.ml +++ b/lib/error.ml @@ -10,33 +10,26 @@ type t = | MalformedExpression of Sexplib.Sexp.t (* TODO: think of a better way to manage and serialize sublanguage errors *) | SublanguageError of Sexplib.Sexp.t - | Conflict of { - old_db : Management.Multigroup.multigroup; - new_db : Management.Multigroup.multigroup; - } + | Conflict of {old_db: Management.Multigroup.multigroup; new_db: Management.Multigroup.multigroup} | SyntaxError of string | MultigroupNotFound of string let sexp_of_error e = let open Sexplib.Sexp in let error e ps = List (Atom e :: ps) in - let ( <+> ) key value = List [ Atom key; value ] in + let ( <+> ) key value = List [Atom key; value] in match e with (* TODO: think of a subset of common attributes that every error should have (message, etc)? *) - | RelationNotFound s -> error "relation-not-found" [ "relation" <+> Atom s ] - | RelationAlreadyExists s -> - error "relation-already-exists" [ "relation" <+> Atom s ] - | TupleNotFound h -> error "tuple-not-found" [ "hash" <+> Atom h ] - | DuplicateTuple h -> error "duplicate-tuple" [ "hash" <+> Atom h ] - | ConstraintViolation s -> - error "constraint-violation" [ "message" <+> Atom s ] - | StorageError s -> error "storage-error" [ "message" <+> Atom s ] - | UnrecognizedSublanguage s -> - error "unrecognized-sublanguage" [ "tag" <+> Atom s ] - | MalformedExpression s -> error "malformed-expression" [ "expression" <+> s ] - | SublanguageError s -> error "sublanguage-error" [ "error" <+> s ] - | SyntaxError s -> error "syntax-error" [ "message" <+> Atom s ] - | MultigroupNotFound s -> error "multigroup-not-found" [ "name" <+> Atom s ] - | Conflict { old_db; new_db } -> - error "conflict" - [ "old" <+> Atom old_db#name; "new" <+> Atom new_db#name ] + | RelationNotFound s -> error "relation-not-found" ["relation" <+> Atom s] + | RelationAlreadyExists s -> error "relation-already-exists" ["relation" <+> Atom s] + | TupleNotFound h -> error "tuple-not-found" ["hash" <+> Atom h] + | DuplicateTuple h -> error "duplicate-tuple" ["hash" <+> Atom h] + | ConstraintViolation s -> error "constraint-violation" ["message" <+> Atom s] + | StorageError s -> error "storage-error" ["message" <+> Atom s] + | UnrecognizedSublanguage s -> error "unrecognized-sublanguage" ["tag" <+> Atom s] + | MalformedExpression s -> error "malformed-expression" ["expression" <+> s] + | SublanguageError s -> error "sublanguage-error" ["error" <+> s] + | SyntaxError s -> error "syntax-error" ["message" <+> Atom s] + | MultigroupNotFound s -> error "multigroup-not-found" ["name" <+> Atom s] + | Conflict {old_db; new_db} -> + error "conflict" ["old" <+> Atom old_db#name; "new" <+> Atom new_db#name] |
