wasmtime_environ::__core::prelude::v1

Trait Ord

1.6.0 · Source
pub trait Ord: Eq + PartialOrd {
    // Required method
    fn cmp(&self, other: &Self) -> Ordering;

    // Provided methods
    fn max(self, other: Self) -> Self
       where Self: Sized { ... }
    fn min(self, other: Self) -> Self
       where Self: Sized { ... }
    fn clamp(self, min: Self, max: Self) -> Self
       where Self: Sized { ... }
}
Expand description

Trait for types that form a total order.

Implementations must be consistent with the PartialOrd implementation, and ensure max, min, and clamp are consistent with cmp:

  • partial_cmp(a, b) == Some(cmp(a, b)).
  • max(a, b) == max_by(a, b, cmp) (ensured by the default implementation).
  • min(a, b) == min_by(a, b, cmp) (ensured by the default implementation).
  • For a.clamp(min, max), see the method docs (ensured by the default implementation).

Violating these requirements is a logic error. The behavior resulting from a logic error is not specified, but users of the trait must ensure that such logic errors do not result in undefined behavior. This means that unsafe code must not rely on the correctness of these methods.

§Corollaries

From the above and the requirements of PartialOrd, it follows that for all a, b and c:

  • exactly one of a < b, a == b or a > b is true; and
  • < is transitive: a < b and b < c implies a < c. The same must hold for both == and >.

Mathematically speaking, the < operator defines a strict weak order. In cases where == conforms to mathematical equality, it also defines a strict total order.

§Derivable

This trait can be used with #[derive].

When derived on structs, it will produce a lexicographic ordering based on the top-to-bottom declaration order of the struct’s members.

When derived on enums, variants are ordered primarily by their discriminants. Secondarily, they are ordered by their fields. By default, the discriminant is smallest for variants at the top, and largest for variants at the bottom. Here’s an example:

#[derive(PartialEq, Eq, PartialOrd, Ord)]
enum E {
    Top,
    Bottom,
}

assert!(E::Top < E::Bottom);

However, manually setting the discriminants can override this default behavior:

#[derive(PartialEq, Eq, PartialOrd, Ord)]
enum E {
    Top = 2,
    Bottom = 1,
}

assert!(E::Bottom < E::Top);

§Lexicographical comparison

Lexicographical comparison is an operation with the following properties:

  • Two sequences are compared element by element.
  • The first mismatching element defines which sequence is lexicographically less or greater than the other.
  • If one sequence is a prefix of another, the shorter sequence is lexicographically less than the other.
  • If two sequences have equivalent elements and are of the same length, then the sequences are lexicographically equal.
  • An empty sequence is lexicographically less than any non-empty sequence.
  • Two empty sequences are lexicographically equal.

§How can I implement Ord?

Ord requires that the type also be PartialOrd, PartialEq, and Eq.

Because Ord implies a stronger ordering relationship than PartialOrd, and both Ord and PartialOrd must agree, you must choose how to implement Ord first. You can choose to derive it, or implement it manually. If you derive it, you should derive all four traits. If you implement it manually, you should manually implement all four traits, based on the implementation of Ord.

Here’s an example where you want to define the Character comparison by health and experience only, disregarding the field mana:

use std::cmp::Ordering;

struct Character {
    health: u32,
    experience: u32,
    mana: f32,
}

impl Ord for Character {
    fn cmp(&self, other: &Self) -> Ordering {
        self.experience
            .cmp(&other.experience)
            .then(self.health.cmp(&other.health))
    }
}

impl PartialOrd for Character {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
        Some(self.cmp(other))
    }
}

impl PartialEq for Character {
    fn eq(&self, other: &Self) -> bool {
        self.health == other.health && self.experience == other.experience
    }
}

impl Eq for Character {}

If all you need is to slice::sort a type by a field value, it can be simpler to use slice::sort_by_key.

§Examples of incorrect Ord implementations

use std::cmp::Ordering;

#[derive(Debug)]
struct Character {
    health: f32,
}

impl Ord for Character {
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        if self.health < other.health {
            Ordering::Less
        } else if self.health > other.health {
            Ordering::Greater
        } else {
            Ordering::Equal
        }
    }
}

impl PartialOrd for Character {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
        Some(self.cmp(other))
    }
}

impl PartialEq for Character {
    fn eq(&self, other: &Self) -> bool {
        self.health == other.health
    }
}

impl Eq for Character {}

let a = Character { health: 4.5 };
let b = Character { health: f32::NAN };

// Mistake: floating-point values do not form a total order and using the built-in comparison
// operands to implement `Ord` irregardless of that reality does not change it. Use
// `f32::total_cmp` if you need a total order for floating-point values.

// Reflexivity requirement of `Ord` is not given.
assert!(a == a);
assert!(b != b);

// Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be
// true, not both or neither.
assert_eq!((a < b) as u8 + (b < a) as u8, 0);
use std::cmp::Ordering;

#[derive(Debug)]
struct Character {
    health: u32,
    experience: u32,
}

impl PartialOrd for Character {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
        Some(self.cmp(other))
    }
}

impl Ord for Character {
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        if self.health < 50 {
            self.health.cmp(&other.health)
        } else {
            self.experience.cmp(&other.experience)
        }
    }
}

// For performance reasons implementing `PartialEq` this way is not the idiomatic way, but it
// ensures consistent behavior between `PartialEq`, `PartialOrd` and `Ord` in this example.
impl PartialEq for Character {
    fn eq(&self, other: &Self) -> bool {
        self.cmp(other) == Ordering::Equal
    }
}

impl Eq for Character {}

let a = Character {
    health: 3,
    experience: 5,
};
let b = Character {
    health: 10,
    experience: 77,
};
let c = Character {
    health: 143,
    experience: 2,
};

// Mistake: The implementation of `Ord` compares different fields depending on the value of
// `self.health`, the resulting order is not total.

// Transitivity requirement of `Ord` is not given. If a is smaller than b and b is smaller than
// c, by transitive property a must also be smaller than c.
assert!(a < b && b < c && c < a);

// Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be
// true, not both or neither.
assert_eq!((a < c) as u8 + (c < a) as u8, 2);

The documentation of PartialOrd contains further examples, for example it’s wrong for PartialOrd and PartialEq to disagree.

Required Methods§

1.0.0 · Source

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other.

By convention, self.cmp(&other) returns the ordering matching the expression self <operator> other if true.

§Examples
use std::cmp::Ordering;

assert_eq!(5.cmp(&10), Ordering::Less);
assert_eq!(10.cmp(&5), Ordering::Greater);
assert_eq!(5.cmp(&5), Ordering::Equal);

Provided Methods§

1.21.0 · Source

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values.

Returns the second argument if the comparison determines them to be equal.

§Examples
assert_eq!(1.max(2), 2);
assert_eq!(2.max(2), 2);
1.21.0 · Source

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values.

Returns the first argument if the comparison determines them to be equal.

§Examples
assert_eq!(1.min(2), 1);
assert_eq!(2.min(2), 2);
1.50.0 · Source

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval.

Returns max if self is greater than max, and min if self is less than min. Otherwise this returns self.

§Panics

Panics if min > max.

§Examples
assert_eq!((-3).clamp(-2, 1), -2);
assert_eq!(0.clamp(-2, 1), 0);
assert_eq!(2.clamp(-2, 1), 1);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Ord for gimli::common::SectionId

Source§

impl Ord for ColumnType

Source§

impl Ord for Level

Source§

impl Ord for LevelFilter

Source§

impl Ord for StandardSection

Source§

impl Ord for StandardSegment

Source§

impl Ord for ComponentSectionId

Source§

impl Ord for wasm_encoder::core::SectionId

Source§

impl Ord for AbstractHeapType

Source§

impl Ord for HeapType

Source§

impl Ord for wasm_encoder::core::types::StorageType

Source§

impl Ord for wasm_encoder::core::types::ValType

Source§

impl Ord for CompositeInnerType

Source§

impl Ord for wasmparser::readers::core::types::StorageType

Source§

impl Ord for UnpackedIndex

Source§

impl Ord for wasmparser::readers::core::types::ValType

Source§

impl Ord for AnyTypeId

Source§

impl Ord for ComponentAnyTypeId

Source§

impl Ord for ComponentCoreTypeId

Source§

impl Ord for ComponentNameKind<'_>

Source§

impl Ord for EntityIndex

Source§

impl Ord for LibCall

Source§

impl Ord for AsciiChar

1.0.0 · Source§

impl Ord for Ordering

1.34.0 · Source§

impl Ord for Infallible

1.7.0 · Source§

impl Ord for IpAddr

1.0.0 · Source§

impl Ord for SocketAddr

1.0.0 · Source§

impl Ord for ErrorKind

1.0.0 · Source§

impl Ord for bool

1.0.0 · Source§

impl Ord for char

1.0.0 · Source§

impl Ord for i8

1.0.0 · Source§

impl Ord for i16

1.0.0 · Source§

impl Ord for i32

1.0.0 · Source§

impl Ord for i64

1.0.0 · Source§

impl Ord for i128

1.0.0 · Source§

impl Ord for isize

Source§

impl Ord for !

1.0.0 · Source§

impl Ord for str

Implements ordering of strings.

Strings are ordered lexicographically by their byte values. This orders Unicode code points based on their positions in the code charts. This is not necessarily the same as “alphabetical” order, which varies by language and locale. Sorting strings according to culturally-accepted standards requires locale-specific data that is outside the scope of the str type.

1.0.0 · Source§

impl Ord for u8

1.0.0 · Source§

impl Ord for u16

1.0.0 · Source§

impl Ord for u32

1.0.0 · Source§

impl Ord for u64

1.0.0 · Source§

impl Ord for u128

1.0.0 · Source§

impl Ord for ()

1.0.0 · Source§

impl Ord for usize

Source§

impl Ord for Register

Source§

impl Ord for DwAccess

Source§

impl Ord for DwAddr

Source§

impl Ord for DwAt

Source§

impl Ord for DwAte

Source§

impl Ord for DwCc

Source§

impl Ord for DwCfa

Source§

impl Ord for DwChildren

Source§

impl Ord for DwDefaulted

Source§

impl Ord for DwDs

Source§

impl Ord for DwDsc

Source§

impl Ord for DwEhPe

Source§

impl Ord for DwEnd

Source§

impl Ord for DwForm

Source§

impl Ord for DwId

Source§

impl Ord for DwIdx

Source§

impl Ord for DwInl

Source§

impl Ord for DwLang

Source§

impl Ord for DwLle

Source§

impl Ord for DwLnct

Source§

impl Ord for DwLne

Source§

impl Ord for DwLns

Source§

impl Ord for DwMacro

Source§

impl Ord for DwOp

Source§

impl Ord for DwOrd

Source§

impl Ord for DwRle

Source§

impl Ord for DwSect

Source§

impl Ord for DwSectV2

Source§

impl Ord for DwTag

Source§

impl Ord for DwUt

Source§

impl Ord for DwVirtuality

Source§

impl Ord for DwVis

Source§

impl Ord for ArangeEntry

Source§

impl Ord for Range

Source§

impl Ord for SectionIndex

Source§

impl Ord for SymbolIndex

Source§

impl Ord for ComdatId

Source§

impl Ord for object::write::SectionId

Source§

impl Ord for SymbolId

Source§

impl Ord for BuildMetadata

Source§

impl Ord for Prerelease

Source§

impl Ord for Version

Source§

impl Ord for DeploymentTarget

Source§

impl Ord for wasm_encoder::core::types::FieldType

Source§

impl Ord for wasm_encoder::core::types::RefType

Source§

impl Ord for SymbolFlags

Source§

impl Ord for ArrayType

Source§

impl Ord for CompositeType

Source§

impl Ord for ContType

Source§

impl Ord for wasmparser::readers::core::types::FieldType

Source§

impl Ord for FuncType

Source§

impl Ord for PackedIndex

Source§

impl Ord for RecGroup

Source§

impl Ord for wasmparser::readers::core::types::RefType

Source§

impl Ord for StructType

Source§

impl Ord for SubType

Source§

impl Ord for AliasableResourceId

Source§

impl Ord for ComponentCoreInstanceTypeId

Source§

impl Ord for ComponentCoreModuleTypeId

Source§

impl Ord for ComponentDefinedTypeId

Source§

impl Ord for ComponentFuncTypeId

Source§

impl Ord for ComponentInstanceTypeId

Source§

impl Ord for ComponentTypeId

Source§

impl Ord for ComponentValueTypeId

Source§

impl Ord for ResourceId

Source§

impl Ord for ComponentName

Source§

impl Ord for KebabStr

Source§

impl Ord for KebabString

Source§

impl Ord for ValidatorId

Source§

impl Ord for CoreTypeId

Source§

impl Ord for RecGroupId

Source§

impl Ord for ComponentBuiltinFunctionIndex

Source§

impl Ord for ComponentFuncIndex

Source§

impl Ord for ComponentIndex

Source§

impl Ord for ComponentInstanceIndex

Source§

impl Ord for ComponentTypeIndex

Source§

impl Ord for ComponentUpvarIndex

Source§

impl Ord for DefinedResourceIndex

Source§

impl Ord for ExportIndex

Source§

impl Ord for ImportIndex

Source§

impl Ord for LoweredIndex

Source§

impl Ord for ModuleIndex

Source§

impl Ord for ModuleInstanceIndex

Source§

impl Ord for ModuleUpvarIndex

Source§

impl Ord for ResourceIndex

Source§

impl Ord for RuntimeCallbackIndex

Source§

impl Ord for RuntimeComponentInstanceIndex

Source§

impl Ord for RuntimeImportIndex

Source§

impl Ord for RuntimeInstanceIndex

Source§

impl Ord for RuntimeMemoryIndex

Source§

impl Ord for RuntimePostReturnIndex

Source§

impl Ord for RuntimeReallocIndex

Source§

impl Ord for StaticComponentIndex

Source§

impl Ord for TrampolineIndex

Source§

impl Ord for TypeComponentGlobalErrorContextTableIndex

Source§

impl Ord for TypeComponentIndex

Source§

impl Ord for TypeComponentInstanceIndex

Source§

impl Ord for TypeComponentLocalErrorContextTableIndex

Source§

impl Ord for TypeEnumIndex

Source§

impl Ord for TypeFlagsIndex

Source§

impl Ord for TypeFuncIndex

Source§

impl Ord for TypeFutureIndex

Source§

impl Ord for TypeFutureTableIndex

Source§

impl Ord for TypeListIndex

Source§

impl Ord for TypeModuleIndex

Source§

impl Ord for TypeOptionIndex

Source§

impl Ord for TypeRecordIndex

Source§

impl Ord for TypeResourceTableIndex

Source§

impl Ord for TypeResultIndex

Source§

impl Ord for TypeStreamIndex

Source§

impl Ord for TypeStreamTableIndex

Source§

impl Ord for TypeTaskReturnIndex

Source§

impl Ord for TypeTupleIndex

Source§

impl Ord for TypeVariantIndex

1.0.0 · Source§

impl Ord for String

Source§

impl Ord for BuiltinFunctionIndex

Source§

impl Ord for DataIndex

Source§

impl Ord for DefinedFuncIndex

Source§

impl Ord for DefinedGlobalIndex

Source§

impl Ord for DefinedMemoryIndex

Source§

impl Ord for DefinedTableIndex

Source§

impl Ord for DefinedTagIndex

Source§

impl Ord for ElemIndex

Source§

impl Ord for EngineInternedRecGroupIndex

Source§

impl Ord for FuncIndex

Source§

impl Ord for FuncRefIndex

Source§

impl Ord for GlobalIndex

Source§

impl Ord for MemoryIndex

Source§

impl Ord for ModuleInternedRecGroupIndex

Source§

impl Ord for ModuleInternedTypeIndex

Source§

impl Ord for OwnedMemoryIndex

Source§

impl Ord for RecGroupRelativeTypeIndex

Source§

impl Ord for StaticModuleIndex

Source§

impl Ord for TableIndex

Source§

impl Ord for TagIndex

Source§

impl Ord for TypeIndex

Source§

impl Ord for VMSharedTypeIndex

1.0.0 · Source§

impl Ord for TypeId

1.27.0 · Source§

impl Ord for CpuidResult

1.0.0 · Source§

impl Ord for CStr

1.0.0 · Source§

impl Ord for Error

1.33.0 · Source§

impl Ord for PhantomPinned

1.0.0 · Source§

impl Ord for Ipv4Addr

1.0.0 · Source§

impl Ord for Ipv6Addr

1.0.0 · Source§

impl Ord for SocketAddrV4

1.0.0 · Source§

impl Ord for SocketAddrV6

Source§

impl Ord for Alignment

1.3.0 · Source§

impl Ord for Duration

1.64.0 · Source§

impl Ord for CString

1.0.0 · Source§

impl Ord for OsStr

1.0.0 · Source§

impl Ord for OsString

1.0.0 · Source§

impl Ord for Components<'_>

1.0.0 · Source§

impl Ord for Path

1.0.0 · Source§

impl Ord for PathBuf

1.0.0 · Source§

impl Ord for PrefixComponent<'_>

1.8.0 · Source§

impl Ord for Instant

1.8.0 · Source§

impl Ord for SystemTime

1.0.0 · Source§

impl<'a> Ord for Component<'a>

1.0.0 · Source§

impl<'a> Ord for Prefix<'a>

Source§

impl<'a> Ord for Metadata<'a>

Source§

impl<'a> Ord for MetadataBuilder<'a>

Source§

impl<'a> Ord for DependencyName<'a>

Source§

impl<'a> Ord for HashName<'a>

Source§

impl<'a> Ord for InterfaceName<'a>

Source§

impl<'a> Ord for ResourceFunc<'a>

Source§

impl<'a> Ord for UrlName<'a>

1.10.0 · Source§

impl<'a> Ord for Location<'a>

1.0.0 · Source§

impl<A> Ord for &A
where A: Ord + ?Sized,

1.0.0 · Source§

impl<A> Ord for &mut A
where A: Ord + ?Sized,

Source§

impl<A> Ord for SmallVec<A>
where A: Array, <A as Array>::Item: Ord,

1.0.0 · Source§

impl<B> Ord for Cow<'_, B>
where B: Ord + ToOwned + ?Sized,

Source§

impl<Dyn> Ord for DynMetadata<Dyn>
where Dyn: ?Sized,

Source§

impl<E> Ord for I16<E>
where E: Ord + Endian,

Source§

impl<E> Ord for I32<E>
where E: Ord + Endian,

Source§

impl<E> Ord for I64<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U16<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U32<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U64<E>
where E: Ord + Endian,

Source§

impl<E> Ord for I16Bytes<E>
where E: Ord + Endian,

Source§

impl<E> Ord for I32Bytes<E>
where E: Ord + Endian,

Source§

impl<E> Ord for I64Bytes<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U16Bytes<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U32Bytes<E>
where E: Ord + Endian,

Source§

impl<E> Ord for U64Bytes<E>
where E: Ord + Endian,

1.4.0 · Source§

impl<F> Ord for F
where F: FnPtr,

Source§

impl<K, V> Ord for indexmap::map::slice::Slice<K, V>
where K: Ord, V: Ord,

1.0.0 · Source§

impl<K, V, A> Ord for BTreeMap<K, V, A>
where K: Ord, V: Ord, A: Allocator + Clone,

1.41.0 · Source§

impl<Ptr> Ord for Pin<Ptr>
where Ptr: Deref, <Ptr as Deref>::Target: Ord,

Source§

impl<T> Ord for UnitSectionOffset<T>
where T: Ord,

1.0.0 · Source§

impl<T> Ord for Option<T>
where T: Ord,

1.36.0 · Source§

impl<T> Ord for Poll<T>
where T: Ord,

1.0.0 · Source§

impl<T> Ord for *const T
where T: ?Sized,

1.0.0 · Source§

impl<T> Ord for *mut T
where T: ?Sized,

1.0.0 · Source§

impl<T> Ord for [T]
where T: Ord,

Implements comparison of slices lexicographically.

1.0.0 · Source§

impl<T> Ord for (T₁, T₂, …, Tₙ)
where T: Ord + ?Sized,

This trait is implemented for tuples up to twelve items long.

Source§

impl<T> Ord for DebugInfoOffset<T>
where T: Ord,

Source§

impl<T> Ord for DebugTypesOffset<T>
where T: Ord,

Source§

impl<T> Ord for UnitOffset<T>
where T: Ord,

Source§

impl<T> Ord for indexmap::set::slice::Slice<T>
where T: Ord,

Source§

impl<T> Ord for PackedOption<T>
where T: Ord + ReservedValue,

1.10.0 · Source§

impl<T> Ord for Cell<T>
where T: Ord + Copy,

1.10.0 · Source§

impl<T> Ord for RefCell<T>
where T: Ord + ?Sized,

1.19.0 · Source§

impl<T> Ord for Reverse<T>
where T: Ord,

1.0.0 · Source§

impl<T> Ord for PhantomData<T>
where T: ?Sized,

1.20.0 · Source§

impl<T> Ord for ManuallyDrop<T>
where T: Ord + ?Sized,

1.28.0 · Source§

impl<T> Ord for NonZero<T>

1.74.0 · Source§

impl<T> Ord for Saturating<T>
where T: Ord,

1.0.0 · Source§

impl<T> Ord for Wrapping<T>
where T: Ord,

1.25.0 · Source§

impl<T> Ord for NonNull<T>
where T: ?Sized,

Source§

impl<T, A> Ord for allocator_api2::stable::boxed::Box<T, A>
where T: Ord + ?Sized, A: Allocator,

Source§

impl<T, A> Ord for allocator_api2::stable::vec::Vec<T, A>
where T: Ord, A: Allocator,

Implements ordering of vectors, lexicographically.

1.0.0 · Source§

impl<T, A> Ord for wasmtime_environ::prelude::Box<T, A>
where T: Ord + ?Sized, A: Allocator,

1.0.0 · Source§

impl<T, A> Ord for wasmtime_environ::prelude::Vec<T, A>
where T: Ord, A: Allocator,

Implements ordering of vectors, lexicographically.

1.0.0 · Source§

impl<T, A> Ord for BTreeSet<T, A>
where T: Ord, A: Allocator + Clone,

1.0.0 · Source§

impl<T, A> Ord for LinkedList<T, A>
where T: Ord, A: Allocator,

1.0.0 · Source§

impl<T, A> Ord for VecDeque<T, A>
where T: Ord, A: Allocator,

1.0.0 · Source§

impl<T, A> Ord for Rc<T, A>
where T: Ord + ?Sized, A: Allocator,

Source§

impl<T, A> Ord for UniqueRc<T, A>
where T: Ord + ?Sized, A: Allocator,

1.0.0 · Source§

impl<T, A> Ord for Arc<T, A>
where T: Ord + ?Sized, A: Allocator,

1.0.0 · Source§

impl<T, E> Ord for Result<T, E>
where T: Ord, E: Ord,

1.0.0 · Source§

impl<T, const N: usize> Ord for [T; N]
where T: Ord,

Implements comparison of arrays lexicographically.

Source§

impl<T, const N: usize> Ord for Simd<T, N>

Source§

impl<Y, R> Ord for CoroutineState<Y, R>
where Y: Ord, R: Ord,

impl Ord for Error

impl Ord for StateID

impl Ord for PatternID

impl Ord for AnsiColor

impl Ord for Color

impl Ord for Ansi256Color

impl Ord for Effects

impl Ord for Reset

impl Ord for RgbColor

impl Ord for Style

impl<T: Ord> Ord for Constant<T>

impl Ord for ASN1TimeZone

impl Ord for ASN1DateTime

impl Ord for UtcTime

impl Ord for StatusCode

impl Ord for Subject

impl Ord for BucketType

impl Ord for ChecksumMode

impl Ord for EncodingType

impl Ord for Event

impl Ord for JsonType

impl Ord for LocationType

impl Ord for MfaDelete

impl Ord for Payer

impl Ord for Permission

impl Ord for Protocol

impl Ord for QuoteFields

impl Ord for RequestPayer

impl Ord for SessionMode

impl Ord for StorageClass

impl Ord for Tier

impl Ord for Type

impl Ord for Order

impl Ord for AuthSchemeId

impl Ord for DateTime

impl Ord for HeaderName

impl Ord for MaxResults

impl Ord for Hash

impl Ord for LineEnding

impl Ord for Base64

impl Ord for Base64Bcrypt

impl Ord for Base64Crypt

impl Ord for Base64Url

impl Ord for BigDecimal

impl Ord for BigDecimalRef<'_>

impl<B: BitBlock> Ord for BitVec<B>

impl Ord for BigEndian

impl Ord for LittleEndian

impl Ord for Bytes

impl Ord for BytesMut

impl<S: Storage> Ord for StrInner<S>

impl Ord for Instant

impl Ord for SystemTime

impl Ord for Month

impl Ord for IsoWeek

impl Ord for Days

impl Ord for Months

impl Ord for NaiveDate

impl Ord for NaiveTime

impl Ord for TimeDelta

impl<Tz: TimeZone> Ord for Date<Tz>

impl<Tz: TimeZone> Ord for DateTime<Tz>

impl Ord for AnyIpCidr

impl Ord for Family

impl Ord for IpCidr

impl Ord for IpInet

impl Ord for Ipv4Cidr

impl Ord for Ipv4Inet

impl Ord for Ipv6Cidr

impl Ord for Ipv6Inet

impl Ord for ValueSource

impl Ord for Arg

impl Ord for OsStr

impl Ord for Str

impl Ord for StyledStr

impl Ord for Id

impl<T: Ord> Ord for Resettable<T>

impl Ord for ArgCursor

impl<'s> Ord for ParsedArg<'s>

impl<'a, T: Ord> Ord for SliceStream<'a, T>

impl<P: Ord> Ord for Span<P>

impl<S: Ord> Ord for CompleteStream<S>

impl<S: Ord> Ord for MaybePartialStream<S>

impl<S: Ord> Ord for PartialStream<S>

impl<S: Ord, U: Ord> Ord for Stream<S, U>

impl<T: ?Sized> Ord for PointerOffset<T>

impl Ord for Error

impl Ord for AnyEntity

impl Ord for Event

impl Ord for ConstantData

impl Ord for Block

impl Ord for Constant

impl Ord for DynamicType

impl Ord for FuncRef

impl Ord for GlobalValue

impl Ord for Immediate

impl Ord for Inst

impl Ord for JumpTable

impl Ord for MemoryType

impl Ord for SigRef

impl Ord for StackSlot

impl Ord for Value

impl Ord for Gpr

impl Ord for Xmm

impl Ord for LoopLevel

impl Ord for MachLabel

impl Ord for RealReg

impl Ord for Reg

impl<T: Ord> Ord for Writable<T>

impl<T: ?Sized + Pointable> Ord for Shared<'_, T>

impl Ord for PublicKey

impl Ord for Class

impl Ord for Tag

impl Ord for TagMode

impl Ord for Any

impl Ord for BitString

impl Ord for BmpString

impl Ord for Ia5String

impl Ord for Int

impl Ord for Null

impl Ord for OctetString

impl Ord for Uint

impl Ord for UtcTime

impl Ord for DateTime

impl Ord for Length

impl Ord for TagNumber

impl<'a> Ord for AnyRef<'a>

impl<'a> Ord for BitStringRef<'a>

impl<'a> Ord for Ia5StringRef<'a>

impl<'a> Ord for IntRef<'a>

impl<'a> Ord for OctetStringRef<'a>

impl<'a> Ord for PrintableStringRef<'a>

impl<'a> Ord for TeletexStringRef<'a>

impl<'a> Ord for UintRef<'a>

impl<'a> Ord for Utf8StringRef<'a>

impl<'a> Ord for VideotexStringRef<'a>

impl<'a, T: Ord> Ord for ContextSpecificRef<'a, T>

impl<T> Ord for SetOfVec<T>
where T: DerOrd + Ord,

impl<T, const N: usize> Ord for SetOf<T, N>
where T: DerOrd + Ord,

impl<T: Ord> Ord for ContextSpecific<T>

impl<const MIN: i128, const MAX: i128> Ord for OptionRangedI128<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Ord for RangedI128<MIN, MAX>

impl<const MIN: i16, const MAX: i16> Ord for OptionRangedI16<MIN, MAX>

impl<const MIN: i16, const MAX: i16> Ord for RangedI16<MIN, MAX>

impl<const MIN: i32, const MAX: i32> Ord for OptionRangedI32<MIN, MAX>

impl<const MIN: i32, const MAX: i32> Ord for RangedI32<MIN, MAX>

impl<const MIN: i64, const MAX: i64> Ord for OptionRangedI64<MIN, MAX>

impl<const MIN: i64, const MAX: i64> Ord for RangedI64<MIN, MAX>

impl<const MIN: i8, const MAX: i8> Ord for OptionRangedI8<MIN, MAX>

impl<const MIN: i8, const MAX: i8> Ord for RangedI8<MIN, MAX>

impl<const MIN: isize, const MAX: isize> Ord for OptionRangedIsize<MIN, MAX>

impl<const MIN: isize, const MAX: isize> Ord for RangedIsize<MIN, MAX>

impl<const MIN: u128, const MAX: u128> Ord for OptionRangedU128<MIN, MAX>

impl<const MIN: u128, const MAX: u128> Ord for RangedU128<MIN, MAX>

impl<const MIN: u16, const MAX: u16> Ord for OptionRangedU16<MIN, MAX>

impl<const MIN: u16, const MAX: u16> Ord for RangedU16<MIN, MAX>

impl<const MIN: u32, const MAX: u32> Ord for OptionRangedU32<MIN, MAX>

impl<const MIN: u32, const MAX: u32> Ord for RangedU32<MIN, MAX>

impl<const MIN: u64, const MAX: u64> Ord for OptionRangedU64<MIN, MAX>

impl<const MIN: u64, const MAX: u64> Ord for RangedU64<MIN, MAX>

impl<const MIN: u8, const MAX: u8> Ord for OptionRangedU8<MIN, MAX>

impl<const MIN: u8, const MAX: u8> Ord for RangedU8<MIN, MAX>

impl<const MIN: usize, const MAX: usize> Ord for OptionRangedUsize<MIN, MAX>

impl<const MIN: usize, const MAX: usize> Ord for RangedUsize<MIN, MAX>

impl<L: Ord, R: Ord> Ord for Either<L, R>

impl Ord for Blocking

impl<'a> Ord for NonBlocking<'a>

impl Ord for FileTime

impl<T: Ord> Ord for AssertAsync<T>

impl<T: Ord> Ord for AllowStdIo<T>

impl<T: Ord, N> Ord for GenericArray<T, N>
where N: ArrayLength<T>,

impl Ord for MatchOptions

impl Ord for Pattern

impl Ord for HeaderValue

impl Ord for StatusCode

impl Ord for Version

impl Ord for Version

impl Ord for Age

impl Ord for Expires

impl Ord for LastModified

impl Ord for Expect

impl Ord for RetryAfter

impl Ord for HttpDate

impl Ord for Duration

impl Ord for Timestamp

impl Ord for ReasonPhrase

impl Ord for Other

impl Ord for Subtag

impl Ord for Private

impl Ord for Subtag

impl Ord for Fields

impl Ord for Key

impl Ord for Value

impl Ord for Attribute

impl Ord for Attributes

impl Ord for Key

impl Ord for Keywords

impl Ord for Unicode

impl Ord for Value

impl Ord for Language

impl Ord for Region

impl Ord for Script

impl Ord for Variant

impl Ord for Variants

impl<'a> Ord for LanguageStrStrPair<'a>

impl<'a> Ord for StrStrPair<'a>

impl Ord for BidiClass

impl Ord for JoiningType

impl Ord for LineBreak

impl Ord for Script

impl Ord for WordBreak

impl Ord for DataKey

impl Ord for DataKeyHash

impl Ord for DataKeyPath

impl<T> Ord for Id<T>

impl Ord for IpAddrRange

impl Ord for IpNet

impl Ord for IpSubnets

impl Ord for Ipv4Net

impl Ord for Ipv4Subnets

impl Ord for Ipv6Net

impl Ord for Ipv6Subnets

impl<Storage: Ord> Ord for __BindgenBitfieldUnit<Storage>

impl<K: Ord + ?Sized, V: Ord + ?Sized, S: Ord> Ord for LiteMap<K, V, S>

impl Ord for InsertError

impl<'k, 'v> Ord for Params<'k, 'v>

impl<T: Ord> Ord for MaybeOwned<'_, T>

impl<T: Ord> Ord for MaybeOwnedMut<'_, T>

impl Ord for Mime

impl<'a> Ord for Name<'a>

impl Ord for Interest

impl Ord for Token

impl Ord for Sign

impl Ord for BigInt

impl Ord for BigUint

impl<T: Clone + Integer> Ord for Ratio<T>

impl Ord for Severity

impl Ord for Key

impl Ord for SpanFlags

impl Ord for SpanKind

impl Ord for StatusCode

impl Ord for PgNumeric

impl Ord for PgLsn

impl<const SIZE: usize> Ord for WriteBuffer<SIZE>

impl Ord for Ident

impl Ord for Feature

impl Ord for NullValue

impl Ord for Syntax

impl Ord for Cardinality

impl Ord for Kind

impl Ord for Label

impl Ord for Type

impl Ord for CType

impl Ord for JsType

impl Ord for OptimizeMode

impl Ord for Opcode

impl Ord for AnyReg

impl Ord for FReg

impl Ord for VReg

impl Ord for XReg

impl Ord for PcRelOffset

impl Ord for U6

impl Ord for AddrG32

impl Ord for AddrG32Bne

impl Ord for AddrO32

impl Ord for AddrZ

impl<D: Ord, S1: Ord, S2: Ord> Ord for BinaryOperands<D, S1, S2>

impl<'a> Ord for PrefixDeclaration<'a>

impl<'a> Ord for LocalName<'a>

impl<'a> Ord for Namespace<'a>

impl<'a> Ord for Prefix<'a>

impl<'a> Ord for QName<'a>

impl<T: Ord> Ord for Attr<T>

impl Ord for InstPosition

impl Ord for RegClass

impl Ord for Allocation

impl Ord for Block

impl Ord for Inst

impl Ord for Operand

impl Ord for PReg

impl Ord for PRegSet

impl Ord for ProgPoint

impl Ord for SpillSlot

impl Ord for VReg

impl Ord for LazyStateID

impl Ord for PatternID

impl Ord for Unit

impl Ord for NonMaxUsize

impl Ord for SmallIndex

impl Ord for StateID

impl Ord for Utf8Sequence

impl Ord for Position

impl Ord for Span

impl Ord for Literal

impl Ord for Utf8Range

impl Ord for Version

impl Ord for ByteBuf

impl<'a> Ord for Bytes<'a>

impl Ord for Direction

impl Ord for Timespec

impl Ord for UnixTime

impl Ord for InstanceType

impl<T: Ord> Ord for SingleOrVec<T>

impl<T: Ord> Ord for Spanned<T>

impl Ord for Tag

impl Ord for SigId

impl Ord for Algorithm

impl Ord for KeyHandle

impl Ord for KeyInfo

impl Ord for KeyName

impl Ord for LicenseItem

impl Ord for Operator

impl Ord for ExceptionId

impl Ord for LicenseId

impl Ord for LicenseReq

impl Ord for Licensee

impl Ord for SpiffeId

impl Ord for TrustDomain

impl<Params: Ord> Ord for AlgorithmIdentifier<Params>

impl Ord for Gid

impl Ord for Pid

impl Ord for Uid

impl Ord for Date

impl Ord for Duration

impl Ord for Time

impl Ord for UtcDateTime

impl Ord for UtcOffset

impl<const N: usize> Ord for TinyAsciiStr<N>

impl<const N: usize> Ord for UnvalidatedTinyAsciiStr<N>

impl<'s, T> Ord for SliceVec<'s, T>
where T: Ord,

impl<A: Array> Ord for TinyVec<A>
where A::Item: Ord,

impl<A: Array> Ord for ArrayVec<A>
where A::Item: Ord,

impl Ord for Ready

impl Ord for Instant

impl Ord for BytesCodec

impl Ord for LinesCodec

impl Ord for Offset

impl Ord for Date

impl Ord for Datetime

impl Ord for Time

impl Ord for Key

impl<'k> Ord for KeyMut<'k>

impl<VE: ValueEncoding> Ord for MetadataValue<VE>

impl Ord for Level

impl Ord for LevelFilter

impl Ord for Directive

impl Ord for FmtSpan

impl Ord for ATerm

impl Ord for B0

impl Ord for B1

impl Ord for Z0

impl Ord for Equal

impl Ord for Greater

impl Ord for Less

impl Ord for UTerm

impl<U: Ord + Unsigned + NonZero> Ord for NInt<U>

impl<U: Ord + Unsigned + NonZero> Ord for PInt<U>

impl<U: Ord, B: Ord> Ord for UInt<U, B>

impl<V: Ord, A: Ord> Ord for TArr<V, A>

impl Ord for Ulid

impl<T: AsRef<str>> Ord for Ascii<T>

impl<T: AsRef<str>> Ord for UniCase<T>

impl Ord for Level

impl Ord for EmojiStatus

impl Ord for yaml_break_t

impl Ord for Url

impl<S: Ord> Ord for Host<S>

impl<Str: Ord> Ord for Encoded<Str>

impl Ord for HttpMethod

impl Ord for Braced

impl Ord for Hyphenated

impl Ord for Simple

impl Ord for Urn

impl Ord for Uuid

impl Ord for DeleteResult

impl Ord for DeployResult

impl Ord for GetResult

impl Ord for PutResult

impl Ord for StatusResult

impl Ord for StatusType

impl Ord for V128

impl Ord for BStr

impl Ord for Bytes

impl<I: Ord> Ord for LocatingSlice<I>

impl<I: Ord> Ord for Partial<I>

impl<T: Ord, S> Ord for Checkpoint<T, S>

impl Ord for WasmType

impl Ord for Alignment

impl Ord for PackageName

impl<P: Ord + Profile> Ord for SerialNumber<P>

impl Ord for ASN1Time

impl Ord for BigEndian

impl Ord for LittleEndian

impl<O: ByteOrder> Ord for I128<O>

impl<O: ByteOrder> Ord for I16<O>

impl<O: ByteOrder> Ord for I32<O>

impl<O: ByteOrder> Ord for I64<O>

impl<O: ByteOrder> Ord for Isize<O>

impl<O: ByteOrder> Ord for U128<O>

impl<O: ByteOrder> Ord for U16<O>

impl<O: ByteOrder> Ord for U32<O>

impl<O: ByteOrder> Ord for U64<O>

impl<O: ByteOrder> Ord for Usize<O>

impl<T, B> Ord for Ref<B, T>

impl<T: Unaligned + Ord> Ord for Unalign<T>

impl Ord for CharULE

impl Ord for Index16

impl Ord for Index32

impl<'a> Ord for FlexZeroVec<'a>

impl<'a, T: AsULE + Ord> Ord for ZeroVec<'a, T>

impl<'a, T: VarULE + ?Sized + Ord, F: VarZeroVecFormat> Ord for VarZeroVec<'a, T, F>

impl<A: Ord + ULE, B: Ord + ULE> Ord for Tuple2ULE<A, B>

impl<A: Ord + ULE, B: Ord + ULE, C: Ord + ULE> Ord for Tuple3ULE<A, B, C>

impl<A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE> Ord for Tuple4ULE<A, B, C, D>

impl<A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE, E: Ord + ULE> Ord for Tuple5ULE<A, B, C, D, E>

impl<A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE, E: Ord + ULE, F: Ord + ULE> Ord for Tuple6ULE<A, B, C, D, E, F>

impl<T: AsULE + Ord> Ord for ZeroSlice<T>

impl<T: VarULE + ?Sized + Ord, F: VarZeroVecFormat> Ord for VarZeroSlice<T, F>

impl<U: VarULE + ?Sized + Ord> Ord for OptionVarULE<U>

impl<const N: usize> Ord for RawBytesULE<N>