#[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 moreSource§impl Debug for DropReason
impl Debug for DropReason
Source§impl Hash for DropReason
impl Hash for DropReason
Source§impl PartialEq for DropReason
impl PartialEq for DropReason
impl Copy for DropReason
impl Eq for DropReason
impl StructuralPartialEq for DropReason
Auto Trait Implementations§
impl Freeze for DropReason
impl RefUnwindSafe for DropReason
impl Send for DropReason
impl Sync for DropReason
impl Unpin for DropReason
impl UnwindSafe for DropReason
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more