pub enum CompositionError {
ExternalFieldNoOwner {
field: String,
},
ExternalFieldMultipleOwners {
field: String,
owners: Vec<String>,
},
KeyMismatch {
typename: String,
key_a: Vec<String>,
key_b: Vec<String>,
},
ShareableFieldConflict {
typename: String,
field: String,
subgraph_a: String,
subgraph_b: String,
},
TypeConflict {
typename: String,
reason: String,
},
}Expand description
Errors during schema composition
These errors indicate problems with multi-subgraph federation that prevent the supergraph from being composed. Each error includes context for debugging.
Variants§
ExternalFieldNoOwner
@external field has no owning subgraph
An @external field was marked in a subgraph extension, but no other subgraph defines this field as local (non-external).
ExternalFieldMultipleOwners
@external field owned by multiple subgraphs
An @external field reference conflicts: multiple subgraphs claim to own it. Only one subgraph can own each @external field.
KeyMismatch
@key directive mismatch across subgraphs
The @key directive on a type differs across subgraphs. All subgraphs must agree on the @key for a given type.
@shareable field conflict (shareable in one, not in another)
A field is marked @shareable in one subgraph but not in another. @shareable must be consistent across all subgraphs that define a field.
TypeConflict
Type definition conflict
A type definition conflict that doesn’t fit other categories.
Trait Implementations§
Source§impl Clone for CompositionError
impl Clone for CompositionError
Source§fn clone(&self) -> CompositionError
fn clone(&self) -> CompositionError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CompositionError
impl Debug for CompositionError
Source§impl Display for CompositionError
impl Display for CompositionError
Source§impl Error for CompositionError
impl Error for CompositionError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl Freeze for CompositionError
impl RefUnwindSafe for CompositionError
impl Send for CompositionError
impl Sync for CompositionError
impl Unpin for CompositionError
impl UnsafeUnpin for CompositionError
impl UnwindSafe for CompositionError
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.