pub enum UnaryOperator {
Show 31 variants
Abs,
Acos,
Asin,
Atan,
All,
Any,
Ceil,
Cos,
Exp,
Exp2,
Floor,
Fract,
InvSqrt,
Length,
Log,
Log2,
Normalize,
Pack4x8snorm,
Pack4x8unorm,
Round,
Saturate,
Sign,
Sin,
Sqrt,
Tan,
Unpack4x8snorm,
Unpack4x8unorm,
W,
X,
Y,
Z,
}Expand description
Unary operator.
Operator applied to a single operand to produce another value. The type of the operand and the result are not necessarily the same. Valid operand types depend on the operator itself.
Variants§
Abs
Absolute value operator.
Return the absolute value of the operand, component-wise for vectors. Only valid for numeric operands.
Acos
Inverse cosine operator.
Return the inverse cosine of the operand, component-wise for vectors. Only valid for floating-point operands.
Asin
Inverse sine operator.
Return the inverse sine of the operand, component-wise for vectors. Only valid for floating-point operands.
Atan
Inverse tangent operator.
Return the inverse tangent of the operand, component-wise for vectors. Only valid for floating-point operands.
All
Logical ALL operator for bool vectors.
Return true if all the components of the bool vector operand are
true. Invalid for any other type of operand.
Any
Logical ANY operator for bool vectors.
Return true if any component of the bool vector operand is true.
Invalid for any other type of operand.
Ceil
Ceiling operator.
Return the unique integral number k such that k-1 < x <= k, where
x is the operand which the operator applies to.
Cos
Cosine operator.
Exp
Natural exponent operator.
Return the natural exponentiation of the operand (e^x), component-wise
for vectors.
Exp2
Base-2 exponent operator.
Return two raised to the power of the operand (2^x), component-wise
for vectors.
Floor
Floor operator.
Return the unique integral number k such that k <= x < k+1, where
x is the operand which the operator applies to.
Fract
Fractional part operator.
Return the fractional part of the operand, which is equal to x - floor(x), component-wise for vectors.
InvSqrt
Inverse square root operator.
Return the inverse square root of the floating-point operand (1.0 / sqrt(x)), component-wise for vectors.
Length
Length operator.
Return the length of a floating point scalar or vector. The “length” of
a scalar is taken as its absolute value. The length of a vector is the
Euclidian distance sqrt(x^2 + ...) (square root of the sum of the
squared components).
The output is always a floating point scalar.
Log
Natural logarithm operator.
Return the natural logarithm of the operand (log(x)), component-wise
for vectors.
Log2
Base-2 logarithm operator.
Return the base-2 logarithm of the operand (log2(x)), component-wise
for vectors.
Normalize
Vector normalizing operator.
Normalize the given numeric vector. Only valid for numeric vector operands.
Pack4x8snorm
Packing operator from vec4<f32> to u32 (signed normalized).
Convert the four components of a signed normalized floating point vector
into a signed integral i8 value in [-128:127], then pack those
four values into a single u32. Each vector component should be in
[-1:1] before packing; values outside this range are clamped.
Pack4x8unorm
Packing operator from vec4<f32> to u32 (unsigned normalized).
Convert the four components of an unsigned normalized floating point
vector into an unsigned integral u8 value in [0:255], then pack
those four values into a single u32. Each vector component should
be in [0:1] before packing; values outside this range are clamped.
Round
Rounding operator.
Round the given scalar of vector float to the nearest integer, returned as a float value.
Saturate
Saturate operator.
Clamp the value of the operand to the [0:1] range, component-wise for vectors.
Sign
Sign operator.
Return a value representing the sign of a floating point scalar or vector input:
1.if the operand is > 00.if the operand is = 0-1.if the operand is < 0
Applies component-wise for vectors.
Sin
Sine operator.
Sqrt
Square root operator.
Return the square root of the floating-point operand, component-wise for vectors.
Tan
Tangent operator.
Unpack4x8snorm
Unpacking operator from u32 to vec4<f32> (signed normalized).
Unpack the u32 into four signed integral i8 value in [-128:127],
then convert each value to a signed normalized f32 value in [-1:1].
Unpack4x8unorm
Unpacking operator from u32 to vec4<f32> (unsigned normalized).
Unpack the u32 into four unsigned integral u8 value in [0:255],
then convert each value to an unsigned normalized f32 value in
[0:1].
W
Get the fourth component of a vector.
This is only valid for vectors of rank 4.
X
Get the first component of a scalar or vector.
For scalar, return the value itself. For vectors, return the first component.
Y
Get the second component of a vector.
Z
Get the third component of a vector.
This is only valid for vectors of rank 3 or more.
Implementations§
Source§impl UnaryOperator
impl UnaryOperator
Sourcepub fn is_functional(&self) -> bool
pub fn is_functional(&self) -> bool
Check if a unary operator is called via a functional-style call.
Functional-style calls are in the form op(inner), like abs(x) for
example, while non-functional ones are in the form inner.op,
like v.x for example. This check is used for formatting the WGSL
code emitted during evaluation of a binary operation expression.
Trait Implementations§
Source§impl Clone for UnaryOperator
impl Clone for UnaryOperator
Source§fn clone(&self) -> UnaryOperator
fn clone(&self) -> UnaryOperator
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for UnaryOperator
Source§impl Debug for UnaryOperator
impl Debug for UnaryOperator
Source§impl<'de> Deserialize<'de> for UnaryOperator
impl<'de> Deserialize<'de> for UnaryOperator
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Enum for UnaryOperator
impl Enum for UnaryOperator
Source§fn field(&self, __name_param: &str) -> Option<&dyn PartialReflect>
fn field(&self, __name_param: &str) -> Option<&dyn PartialReflect>
Source§fn field_at(&self, __index_param: usize) -> Option<&dyn PartialReflect>
fn field_at(&self, __index_param: usize) -> Option<&dyn PartialReflect>
Source§fn field_mut(&mut self, __name_param: &str) -> Option<&mut dyn PartialReflect>
fn field_mut(&mut self, __name_param: &str) -> Option<&mut dyn PartialReflect>
Source§fn field_at_mut(
&mut self,
__index_param: usize,
) -> Option<&mut dyn PartialReflect>
fn field_at_mut( &mut self, __index_param: usize, ) -> Option<&mut dyn PartialReflect>
Source§fn index_of(&self, __name_param: &str) -> Option<usize>
fn index_of(&self, __name_param: &str) -> Option<usize>
Source§fn name_at(&self, __index_param: usize) -> Option<&str>
fn name_at(&self, __index_param: usize) -> Option<&str>
Source§fn iter_fields(&self) -> VariantFieldIter<'_>
fn iter_fields(&self) -> VariantFieldIter<'_>
Source§fn variant_name(&self) -> &str
fn variant_name(&self) -> &str
Source§fn variant_index(&self) -> usize
fn variant_index(&self) -> usize
Source§fn variant_type(&self) -> VariantType
fn variant_type(&self) -> VariantType
Source§fn to_dynamic_enum(&self) -> DynamicEnum
fn to_dynamic_enum(&self) -> DynamicEnum
DynamicEnum from this enum.Source§fn is_variant(&self, variant_type: VariantType) -> bool
fn is_variant(&self, variant_type: VariantType) -> bool
Source§fn variant_path(&self) -> String
fn variant_path(&self) -> String
impl Eq for UnaryOperator
Source§impl FromReflect for UnaryOperator
impl FromReflect for UnaryOperator
Source§fn from_reflect(__param0: &dyn PartialReflect) -> Option<Self>
fn from_reflect(__param0: &dyn PartialReflect) -> Option<Self>
Self from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self using,
constructing the value using from_reflect if that fails. Read moreSource§impl GetTypeRegistration for UnaryOperator
impl GetTypeRegistration for UnaryOperator
Source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration for this type.Source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
Source§impl Hash for UnaryOperator
impl Hash for UnaryOperator
Source§impl PartialEq for UnaryOperator
impl PartialEq for UnaryOperator
Source§fn eq(&self, other: &UnaryOperator) -> bool
fn eq(&self, other: &UnaryOperator) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialReflect for UnaryOperator
impl PartialReflect for UnaryOperator
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(
&mut self,
__value_param: &dyn PartialReflect,
) -> Result<(), ApplyError>
fn try_apply( &mut self, __value_param: &dyn PartialReflect, ) -> Result<(), ApplyError>
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Source§fn reflect_owned(self: Box<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Self>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Self>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&dyn Reflect>
fn try_as_reflect(&self) -> Option<&dyn Reflect>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
Source§fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &dyn PartialReflect
fn as_partial_reflect(&self) -> &dyn PartialReflect
Source§fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Box<dyn PartialReflect>
fn to_dynamic(&self) -> Box<dyn PartialReflect>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect, combines reflect_clone and
take in a useful fashion, automatically constructing an appropriate
ReflectCloneError if the downcast fails. Read moreSource§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl Reflect for UnaryOperator
impl Reflect for UnaryOperator
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
&mut dyn Any. Read moreSource§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
Source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
Source§impl Serialize for UnaryOperator
impl Serialize for UnaryOperator
impl StructuralPartialEq for UnaryOperator
Source§impl ToWgslString for UnaryOperator
impl ToWgslString for UnaryOperator
Source§fn to_wgsl_string(&self) -> String
fn to_wgsl_string(&self) -> String
Source§impl TypePath for UnaryOperator
impl TypePath for UnaryOperator
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Auto Trait Implementations§
impl Freeze for UnaryOperator
impl RefUnwindSafe for UnaryOperator
impl Send for UnaryOperator
impl Sync for UnaryOperator
impl Unpin for UnaryOperator
impl UnsafeUnpin for UnaryOperator
impl UnwindSafe for UnaryOperator
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.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,
impl<T> ConditionalSend for Twhere
T: Send,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
Source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info.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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreSource§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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> 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