#[non_exhaustive]pub enum ErrorCode {
Show 48 variants
ParseJson,
ParseDuplicateKey,
ParseUri,
Schema,
CanonName,
CanonArgName,
CanonArgDuplicate,
CanonArgOrder,
CanonPercent,
CanonType,
CanonNumber,
CanonUnit,
CanonDate,
CanonInstant,
CanonString,
CanonBlob,
CanonHex,
CanonLicence,
CanonSet,
CanonLimit,
Slice,
PublisherMismatch,
ValidMismatch,
TimeOrder,
ArgUnknown,
ArgMissing,
KeyUnavailable,
KeyDoc,
KeyUnknown,
KeyNotValid,
Signature,
FnUnavailable,
FnHashMismatch,
ArgType,
ReturnType,
InputUnavailable,
InputInvalid,
InputUndeclared,
ValueMismatch,
BlobMismatch,
Envelope,
EvalUnavailable,
SliceMember,
InputSuperseded,
JobUnknown,
MeshDoc,
SliceAtCell,
NameUnbound,
}Expand description
One variant per E_* code of SPEC 10.2 (spec-0.4.2).
Non-exhaustive: codes added by later revisions of the specification are additions.
The variants are declared in the order of 10.2, except the codes added within
0.3.x, which follow in the order they were added so that ErrorCode::ALL and the
derived ordering only grow: EvalUnavailable (0.3.0; 10.2 lists it between
E_VALUE_MISMATCH and E_BLOB_MISMATCH), then SliceMember and InputSuperseded
(0.3.4, spec-0.4.0; 10.2 lists them after E_INPUT_UNDECLARED and after
E_EVAL_UNAVAILABLE), then JobUnknown and MeshDoc (0.3.5, spec-0.4.1; last in
10.2 too, after E_ENVELOPE), then SliceAtCell and NameUnbound (0.3.6,
spec-0.4.2, after E_MESH_DOC). The formula codes of SPEC 15.11 are not verification codes
and have no variant; the envelope’s fault is a crate::Fault.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ParseJson
Not strict JSON (6.1).
ParseDuplicateKey
A member name repeated in one object.
ParseUri
Not a cell URI by the outer grammar (5.1).
Schema
Missing or extra member, wrong JSON type, wrong proto, null; content for a non-blob.
CanonName
Invalid DNS name, namespace, function name, code language or key reference.
CanonArgName
Invalid or reserved argument name.
CanonArgDuplicate
An argument or asof repeated in a URI.
CanonArgOrder
URI arguments out of order, or asof not last.
CanonPercent
Non-canonical percent-encoding or non-UTF-8 bytes.
CanonType
Unknown type name, value of the wrong JSON type, or a bad valid-time declaration.
CanonNumber
Number not in canonical decimal form.
CanonUnit
A unit rule of 7.1 or units.md broken.
CanonDate
Date not YYYY-MM-DD or not a calendar day.
CanonInstant
Instant not YYYY-MM-DDTHH:MM:SS.ffffffZ or not a real time.
CanonString
Control, unassigned or surrogate code point, not NFC, or empty summary.
CanonBlob
Blob not <sha256>:<length>:<media type>.
CanonHex
Hash, key id, signature or slice entry not lowercase hex of the right length.
CanonLicence
Licence neither an SPDX identifier nor an https:// URL.
CanonSet
inputs, an extent or manifest members not strictly ascending; order not every
argument exactly once.
CanonLimit
A limit from 4.5 exceeded.
Slice
A slice marker where a single cell is required; a slice object without an open or ranged argument.
PublisherMismatch
publisher differs from cell.ns.
ValidMismatch
valid does not echo exactly the valid-time arguments.
TimeOrder
A time-order rule broken.
ArgUnknown
An argument the function does not declare.
ArgMissing
A declared argument not bound.
The key document could not be retrieved.
KeyDoc
The key document is malformed or breaks a rule of 9.2.
KeyUnknown
The key document has no key with that id.
KeyNotValid
issued is outside the key’s validity window.
Signature
The Ed25519 signature does not verify.
No descriptor found for fn_hash.
FnHashMismatch
The descriptor does not hash to fn_hash.
ArgType
An argument’s type differs from its declaration.
ReturnType
type differs from the declared return type.
An input receipt cannot be found, or has another hash.
InputInvalid
An input receipt is not signature-valid.
InputUndeclared
An input receipt, or a slice, is of a function not in the descriptor’s inputs.
ValueMismatch
Recomputation gives a different type or value.
BlobMismatch
Blob content has another length or hash than the blob states.
Envelope
A response envelope breaks a rule of 5.5.
The verifier could not evaluate the function (10.1 step 7.6): no runtime for its
language, a budget exceeded, or inputs the evaluator cannot obtain. Not a failure: it
is reported with success at level signed (see crate::VerifyResult). A mesh may
carry it in an error envelope (5.5). In 10.2 since spec-0.3.0 (RS-28).
SliceMember
A member receipt does not belong to its slice, or two members of a membership slice
are one cell (10.1 step 7.5, spec-0.4.0).
InputSuperseded
Recomputation read a later version of an input cell, or other members of an input
slice (10.1 step 7.6, spec-0.4.0): the receipt is historical, not wrong. Not a
failure: it is reported with success at level signed, at path $.inputs (see
crate::VerifyResult).
JobUnknown
In a bad_request envelope at a job URL: the job is unknown or expired (5.5,
spec-0.4.1). A mesh’s code, not a client’s or a verification result.
MeshDoc
The mesh document cannot be retrieved, is malformed, breaks a rule of 9.6, or disagrees
with the key document on host or proto (crate::resolve_mesh, spec-0.4.1).
Never a verification result.
SliceAtCell
In a bad_request envelope: the /cell request has a slice marker; slices are read at
the slice endpoint (5.6, spec-0.4.2). A mesh’s code.
NameUnbound
In a not_covered envelope’s error: the name (or alias) is not bound as of the
requested asof; it may be bound later (5.5, 5.8, spec-0.4.2). A mesh’s code.