#[non_exhaustive]pub enum DropReason {
NotBlendable,
ProviderLimitation,
ConflictingValues,
IncompatibleChannels,
}Expand description
Why a channel could not be carried through an operation.
Non-exhaustive: new operations find new reasons, and adding one must not break every caller that reports them.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NotBlendable
The operation created vertices and the channel forbids derivation.
Not a failure: Blend::None is the channel stating that an
invented value would be worse than an absent one.
ProviderLimitation
The provider does not carry attributes through this operation.
Distinct from Self::NotBlendable: the data could in principle
have survived, but this implementation does not preserve it. Naming
the provider’s limit separately keeps a capability gap from reading
as a property of the data.
ConflictingValues
Vertices the operation merged carried different values.
A per-vertex channel holds one value per position, so a seam – two coincident vertices with different UVs, say – cannot survive a weld without keeping one side’s value for both. Dropping by name is the honest answer; a corner-indexed channel is the lossless one.
IncompatibleChannels
Inputs being combined define the same channel name with a different width or blend, so no single channel can hold them all.
Combining two "uv" channels, one 2-wide and one 3-wide, would have
to invent a component or discard one; dropping by name is the honest
answer.
Trait Implementations§
Source§impl Clone for DropReason
impl Clone for DropReason
Source§fn clone(&self) -> DropReason
fn clone(&self) -> DropReason
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more