pub enum ConfigIssueKind {
UnknownKey {
suggestion: String,
},
InvalidValue {
value: String,
expected: Vec<String>,
},
SpanningNotSingleParent {
inverse: String,
},
NestNotSingleValued {
field: String,
},
MalformedWorkspaceId {
value: String,
},
}Expand description
The two ways a config key goes unread. See ConfigIssue.
Variants§
UnknownKey
key is not a recognized axis but closely resembles suggestion — almost
certainly a misspelling. An unrecognized key that resembles no axis at
its level is deliberately not reported: a config surface can carry
user-owned fields prov never reads (DESIGN §2), so flagging every
unknown key would be noise.
InvalidValue
key is a recognized axis but value is not a spelling prov
understands, so apply kept the default. expected lists the accepted
spellings (advisory help; mirrors the axis’s parser).
SpanningNotSingleParent
The spanning relation’s declared inverse is a relation whose
cardinality is many, which cannot form the single-parent containment
tree the spanning relation requires (DESIGN §3). key is spanning;
inverse is the offending child→parent relation.
NestNotSingleValued
A view declares nest: but groups by a field the workspace declares
multi-valued (fields.<field>.type: seq).
Nesting files a record into the single-parent spanning relation, so a
document carrying two values for field has two homes and nothing can
choose between them. The grouping is fine — one document under several
groups is what a view is for — so only the filing half is reported.
MalformedWorkspaceId
workspace_id holds a name that cannot be written as the qualifier of an
id:<workspace>/<id> reference — it contains /, : or whitespace, or
is not a string at all. apply ignored it, so the workspace stayed
anonymous.
An empty value is not this: it is the explicit spelling of anonymous,
the way an empty updated spells that feature off.
Unlike InvalidValue there is no list of accepted
spellings to offer: the name is the user’s to choose and only its shape
is constrained.
Trait Implementations§
Source§impl Clone for ConfigIssueKind
impl Clone for ConfigIssueKind
Source§fn clone(&self) -> ConfigIssueKind
fn clone(&self) -> ConfigIssueKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfigIssueKind
impl Debug for ConfigIssueKind
impl Eq for ConfigIssueKind
Source§impl PartialEq for ConfigIssueKind
impl PartialEq for ConfigIssueKind
impl StructuralPartialEq for ConfigIssueKind
Auto Trait Implementations§
impl Freeze for ConfigIssueKind
impl RefUnwindSafe for ConfigIssueKind
impl Send for ConfigIssueKind
impl Sync for ConfigIssueKind
impl Unpin for ConfigIssueKind
impl UnsafeUnpin for ConfigIssueKind
impl UnwindSafe for ConfigIssueKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.