Ord

Trait Ord 

1.6.0 (const: unstable) · 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);
use std::cmp::Ordering;

#[derive(Eq)]
struct Equal(&'static str);

impl PartialEq for Equal {
    fn eq(&self, other: &Self) -> bool { true }
}
impl PartialOrd for Equal {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> { Some(Ordering::Equal) }
}
impl Ord for Equal {
    fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal }
}

assert_eq!(Equal("self").max(Equal("other")).0, "other");
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);
use std::cmp::Ordering;

#[derive(Eq)]
struct Equal(&'static str);

impl PartialEq for Equal {
    fn eq(&self, other: &Self) -> bool { true }
}
impl PartialOrd for Equal {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> { Some(Ordering::Equal) }
}
impl Ord for Equal {
    fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal }
}

assert_eq!(Equal("self").min(Equal("other")).0, "self");
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 FileLeaseType

Source§

impl Ord for IptIpFlags

Source§

impl Ord for AsciiChar

1.34.0 (const: unstable) · Source§

impl Ord for Infallible

1.7.0 · Source§

impl Ord for IpAddr

1.0.0 · Source§

impl Ord for SocketAddr

1.0.0 (const: unstable) · Source§

impl Ord for Ordering

1.0.0 · Source§

impl Ord for ErrorKind

Source§

impl Ord for Month

Source§

impl Ord for log::Level

Source§

impl Ord for LevelFilter

Source§

impl Ord for zerocopy::byteorder::BigEndian

Source§

impl Ord for zerocopy::byteorder::LittleEndian

1.0.0 (const: unstable) · Source§

impl Ord for bool

1.0.0 (const: unstable) · Source§

impl Ord for char

1.0.0 (const: unstable) · Source§

impl Ord for i8

1.0.0 (const: unstable) · Source§

impl Ord for i16

1.0.0 (const: unstable) · Source§

impl Ord for i32

1.0.0 (const: unstable) · Source§

impl Ord for i64

1.0.0 (const: unstable) · Source§

impl Ord for i128

1.0.0 (const: unstable) · 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 (const: unstable) · Source§

impl Ord for u8

1.0.0 (const: unstable) · Source§

impl Ord for u16

1.0.0 (const: unstable) · Source§

impl Ord for u32

1.0.0 (const: unstable) · Source§

impl Ord for u64

1.0.0 (const: unstable) · Source§

impl Ord for u128

1.0.0 (const: unstable) · Source§

impl Ord for ()

1.0.0 (const: unstable) · Source§

impl Ord for usize

Source§

impl Ord for PtraceAccessMode

Source§

impl Ord for SecureBits

Source§

impl Ord for DeviceType

Source§

impl Ord for Access

Source§

impl Ord for InotifyMask

Source§

impl Ord for IptIpFlagsV4

Source§

impl Ord for IptIpFlagsV6

Source§

impl Ord for IptIpInverseFlags

Source§

impl Ord for NfIpHooks

Source§

impl Ord for NfNatRangeFlags

Source§

impl Ord for XtTcpInverseFlags

Source§

impl Ord for XtUdpInverseFlags

Source§

impl Ord for MountFlags

Source§

impl Ord for starnix_uapi::open_flags::OpenFlags

Source§

impl Ord for PersonalityFlags

Source§

impl Ord for SealFlags

Source§

impl Ord for uaddr32

Source§

impl Ord for uaddr

Source§

impl Ord for UnmountFlags

Source§

impl Ord for UserAddress32

Source§

impl Ord for UserAddress

Source§

impl Ord for FdEvents

Source§

impl Ord for ResolveFlags

1.0.0 · Source§

impl Ord for TypeId

1.27.0 · Source§

impl Ord for CpuidResult

Source§

impl Ord for ByteStr

1.0.0 · Source§

impl Ord for CStr

1.0.0 · Source§

impl Ord for starnix_uapi::arch32::__static_assertions::_core::fmt::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

1.10.0 · Source§

impl Ord for Location<'_>

Source§

impl Ord for Alignment

1.3.0 · Source§

impl Ord for starnix_uapi::arch32::__static_assertions::_core::time::Duration

Source§

impl Ord for ByteString

1.64.0 · Source§

impl Ord for CString

1.0.0 · Source§

impl Ord for String

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 std::path::Path

1.0.0 · Source§

impl Ord for PathBuf

1.0.0 · Source§

impl Ord for PrefixComponent<'_>

1.8.0 · Source§

impl Ord for std::time::Instant

1.8.0 · Source§

impl Ord for SystemTime

Source§

impl Ord for Months

Source§

impl Ord for NaiveDate

Source§

impl Ord for NaiveDateDaysIterator

Source§

impl Ord for NaiveDateWeeksIterator

Source§

impl Ord for NaiveDateTime

Source§

impl Ord for IsoWeek

Source§

impl Ord for Days

Source§

impl Ord for NaiveTime

Source§

impl Ord for TimeDelta

Source§

impl Ord for WeekdaySet

Source§

impl Ord for url::Url

URLs compare like their serialization.

Source§

impl Ord for BStr

Source§

impl Ord for BString

Source§

impl Ord for BugRef

Source§

impl Ord for Status

§

impl Ord for AddressTaggingFeatureFlags

§

impl Ord for AdvisoryLockRange

§

impl Ord for AdvisoryLockType

§

impl Ord for AdvisoryLockingMarker

§

impl Ord for All

§

impl Ord for AllocateMode

§

impl Ord for AllowedOffers

§

impl Ord for ArchiveAccessorMarker

§

impl Ord for AtRestFlags

§

impl Ord for Availability

§

impl Ord for Availability

§

impl Ord for BatchIteratorMarker

§

impl Ord for BigEndian

§

impl Ord for BinderMarker

§

impl Ord for BlockIndex

§

impl Ord for BlockType

§

impl Ord for BootControllerMarker

§

impl Ord for BootInstant

§

impl Ord for BootTimeline

§

impl Ord for BorrowedChildName

§

impl Ord for Bti

§

impl Ord for Bti

§

impl Ord for BtiOptions

§

impl Ord for Buffer

§

impl Ord for CapabilityRef

§

impl Ord for CapabilityStoreConnectorCreateRequest

§

impl Ord for CapabilityStoreConnectorOpenRequest

§

impl Ord for CapabilityStoreDictionaryCopyRequest

§

impl Ord for CapabilityStoreDictionaryCreateRequest

§

impl Ord for CapabilityStoreDictionaryDrainRequest

§

impl Ord for CapabilityStoreDictionaryEnumerateRequest

§

impl Ord for CapabilityStoreDictionaryGetRequest

§

impl Ord for CapabilityStoreDictionaryInsertRequest

§

impl Ord for CapabilityStoreDictionaryKeysRequest

§

impl Ord for CapabilityStoreDictionaryLegacyExportRequest

§

impl Ord for CapabilityStoreDictionaryLegacyImportRequest

§

impl Ord for CapabilityStoreDictionaryRemoveRequest

§

impl Ord for CapabilityStoreDirConnectorCreateRequest

§

impl Ord for CapabilityStoreDropRequest

§

impl Ord for CapabilityStoreDuplicateRequest

§

impl Ord for CapabilityStoreError

§

impl Ord for CapabilityStoreExportRequest

§

impl Ord for CapabilityStoreMarker

§

impl Ord for Channel

§

impl Ord for ChildIteratorMarker

§

impl Ord for ChildName

§

impl Ord for ChildRef

§

impl Ord for ClockOpts

§

impl Ord for CloneableCloneRequest

§

impl Ord for CloneableMarker

§

impl Ord for CloseableMarker

§

impl Ord for CollectionRef

§

impl Ord for ComponentControllerMarker

§

impl Ord for ComponentRunnerMarker

§

impl Ord for ConfigMutability

§

impl Ord for ConfigMutability

§

impl Ord for ConfigOverrideError

§

impl Ord for ConfigOverrideMarker

§

impl Ord for ConfigOverrideUnsetStructuredConfigRequest

§

impl Ord for ConfigTypeLayout

§

impl Ord for ConfigurationError

§

impl Ord for ConnectToStorageAdminError

§

impl Ord for Connector

§

impl Ord for ConnectorRouterMarker

§

impl Ord for ConnectorRouterRouteResponse

§

impl Ord for ConstructNamespaceError

§

impl Ord for Context

§

impl Ord for ControllerIsStartedResponse

§

impl Ord for ControllerMarker

§

impl Ord for ControllerOpenExposedDirRequest

§

impl Ord for Counter

§

impl Ord for CpuFeatureFlags

§

impl Ord for CrashIntrospectFindComponentByThreadKoidRequest

§

impl Ord for CrashIntrospectMarker

§

impl Ord for CreateError

§

impl Ord for DataRouterMarker

§

impl Ord for DataType

§

impl Ord for DebugLog

§

impl Ord for DebugLogOpts

§

impl Ord for DebugLogSeverity

§

impl Ord for DebugRef

§

impl Ord for DeclType

§

impl Ord for DeletionError

§

impl Ord for DeletionError

§

impl Ord for DeliveryType

§

impl Ord for DependencyNode

§

impl Ord for DependencyType

§

impl Ord for DestroyError

§

impl Ord for DictionaryDrainIteratorGetNextRequest

§

impl Ord for DictionaryDrainIteratorGetNextResponse

§

impl Ord for DictionaryDrainIteratorMarker

§

impl Ord for DictionaryEnumerateIteratorGetNextRequest

§

impl Ord for DictionaryEnumerateIteratorGetNextResponse

§

impl Ord for DictionaryEnumerateIteratorMarker

§

impl Ord for DictionaryError

§

impl Ord for DictionaryItem

§

impl Ord for DictionaryKeysIteratorGetNextResponse

§

impl Ord for DictionaryKeysIteratorMarker

§

impl Ord for DictionaryMarker

§

impl Ord for DictionaryOptionalItem

§

impl Ord for DictionaryRef

§

impl Ord for DictionaryRouterMarker

§

impl Ord for DictionaryRouterRouteResponse

§

impl Ord for DirConnector

§

impl Ord for DirConnectorRouterMarker

§

impl Ord for DirConnectorRouterRouteResponse

§

impl Ord for DirEntry

§

impl Ord for DirEntryRouterMarker

§

impl Ord for DirEntryRouterRouteResponse

§

impl Ord for DirReceiverMarker

§

impl Ord for DirectoryCreateSymlinkRequest

§

impl Ord for DirectoryDeprecatedOpenRequest

§

impl Ord for DirectoryGetTokenResponse

§

impl Ord for DirectoryLinkRequest

§

impl Ord for DirectoryLinkResponse

§

impl Ord for DirectoryMarker

§

impl Ord for DirectoryObject

§

impl Ord for DirectoryReadDirentsRequest

§

impl Ord for DirectoryReadDirentsResponse

§

impl Ord for DirectoryRenameRequest

§

impl Ord for DirectoryRewindResponse

§

impl Ord for DirectoryRouterMarker

§

impl Ord for DirectoryRouterRouteResponse

§

impl Ord for DirectoryWatchRequest

§

impl Ord for DirectoryWatchResponse

§

impl Ord for DirectoryWatcherMarker

§

impl Ord for DirentType

§

impl Ord for Durability

§

impl Ord for DynamicFlags

§

impl Ord for EmptyStruct

§

impl Ord for EnvironmentExtends

§

impl Ord for EnvironmentRef

§

impl Ord for Error

§

impl Ord for EscrowToken

§

impl Ord for Event

§

impl Ord for EventPair

§

impl Ord for EventStreamMarker

§

impl Ord for EventType

§

impl Ord for Exception

§

impl Ord for Exception

§

impl Ord for ExceptionChannelOptions

§

impl Ord for ExecutionControllerMarker

§

impl Ord for ExposeTarget

§

impl Ord for ExtendedAttributeIteratorGetNextResponse

§

impl Ord for ExtendedAttributeIteratorMarker

§

impl Ord for ExtendedMoniker

§

impl Ord for FileAllocateRequest

§

impl Ord for FileGetBackingMemoryRequest

§

impl Ord for FileGetBackingMemoryResponse

§

impl Ord for FileMarker

§

impl Ord for FileObject

§

impl Ord for FileReadAtRequest

§

impl Ord for FileReadAtResponse

§

impl Ord for FileResizeRequest

§

impl Ord for FileSeekRequest

§

impl Ord for FileSeekResponse

§

impl Ord for FileSignal

§

impl Ord for FileWriteAtRequest

§

impl Ord for FileWriteAtResponse

§

impl Ord for FilesystemInfo

§

impl Ord for Flags

§

impl Ord for FlyByteStr

§

impl Ord for FlyStr

§

impl Ord for Format

§

impl Ord for FrameworkErr

§

impl Ord for FrameworkRef

§

impl Ord for GPAddr

§

impl Ord for GetAllInstancesError

§

impl Ord for GetDeclarationError

§

impl Ord for GetInstanceError

§

impl Ord for GetStructuredConfigError

§

impl Ord for Guest

§

impl Ord for Handle

§

impl Ord for HandleInfo

§

impl Ord for HandleInfo

§

impl Ord for HashAlgorithm

§

impl Ord for InspectSinkMarker

§

impl Ord for InstanceIteratorMarker

§

impl Ord for InstanceToken

§

impl Ord for InstanceType

§

impl Ord for IntrospectorGetMonikerRequest

§

impl Ord for IntrospectorGetMonikerResponse

§

impl Ord for IntrospectorMarker

§

impl Ord for Iob

§

impl Ord for IobAccess

§

impl Ord for IobSharedRegion

§

impl Ord for Iommu

§

impl Ord for Iommu

§

impl Ord for Job

§

impl Ord for JobCriticalOptions

§

impl Ord for Koid

§

impl Ord for LaunchInfo

§

impl Ord for LauncherAddArgsRequest

§

impl Ord for LauncherAddEnvironsRequest

§

impl Ord for LauncherAddHandlesRequest

§

impl Ord for LauncherAddNamesRequest

§

impl Ord for LauncherCreateWithoutStartingRequest

§

impl Ord for LauncherCreateWithoutStartingResponse

§

impl Ord for LauncherLaunchRequest

§

impl Ord for LauncherLaunchResponse

§

impl Ord for LauncherMarker

§

impl Ord for LauncherSetOptionsRequest

§

impl Ord for Level

§

impl Ord for LifecycleControllerMarker

§

impl Ord for LifecycleControllerResolveInstanceRequest

§

impl Ord for LifecycleControllerStartInstanceRequest

§

impl Ord for LifecycleControllerStopInstanceRequest

§

impl Ord for LifecycleControllerUnresolveInstanceRequest

§

impl Ord for LinkableLinkIntoRequest

§

impl Ord for LinkableMarker

§

impl Ord for LittleEndian

§

impl Ord for LoaderCloneRequest

§

impl Ord for LoaderCloneResponse

§

impl Ord for LoaderConfigRequest

§

impl Ord for LoaderConfigResponse

§

impl Ord for LoaderLoadObjectRequest

§

impl Ord for LoaderLoadObjectResponse

§

impl Ord for LoaderMarker

§

impl Ord for LogFlusherMarker

§

impl Ord for LogSettingsMarker

§

impl Ord for LogStreamMarker

§

impl Ord for ManifestBytesIteratorMarker

§

impl Ord for ManifestBytesIteratorNextResponse

§

impl Ord for MemoryStallKind

§

impl Ord for ModeType

§

impl Ord for Moniker

§

impl Ord for MonotonicInstant

§

impl Ord for MonotonicTimeline

§

impl Ord for Msi

§

impl Ord for Name

§

impl Ord for Name

§

impl Ord for NameInfo

§

impl Ord for NameMapping

§

impl Ord for NamespaceCreateRequest

§

impl Ord for NamespaceError

§

impl Ord for NamespaceInputEntry

§

impl Ord for NamespaceMarker

§

impl Ord for NamespacePath

§

impl Ord for NodeAttributeFlags

§

impl Ord for NodeAttributes

§

impl Ord for NodeAttributesQuery

§

impl Ord for NodeDeprecatedCloneRequest

§

impl Ord for NodeDeprecatedGetAttrResponse

§

impl Ord for NodeDeprecatedGetFlagsResponse

§

impl Ord for NodeDeprecatedSetAttrRequest

§

impl Ord for NodeDeprecatedSetAttrResponse

§

impl Ord for NodeDeprecatedSetFlagsRequest

§

impl Ord for NodeDeprecatedSetFlagsResponse

§

impl Ord for NodeGetAttributesRequest

§

impl Ord for NodeGetExtendedAttributeRequest

§

impl Ord for NodeGetFlagsResponse

§

impl Ord for NodeInfoDeprecated

§

impl Ord for NodeListExtendedAttributesRequest

§

impl Ord for NodeMarker

§

impl Ord for NodeOnOpenRequest

§

impl Ord for NodeProtocolKinds

§

impl Ord for NodeQueryFilesystemResponse

§

impl Ord for NodeRemoveExtendedAttributeRequest

§

impl Ord for NodeSetFlagsRequest

§

impl Ord for NsUnit

§

impl Ord for NullableHandle

§

impl Ord for ObjectType

§

impl Ord for OnTerminate

§

impl Ord for OpenDirType

§

impl Ord for OpenError

§

impl Ord for OpenFlags

§

impl Ord for Operations

§

impl Ord for Pager

§

impl Ord for Pager

§

impl Ord for PagerOptions

§

impl Ord for PagerWritebackBeginOptions

§

impl Ord for ParentRef

§

impl Ord for Path

§

impl Ord for PciDevice

§

impl Ord for Pmt

§

impl Ord for Pmt

§

impl Ord for Port

§

impl Ord for Process

§

impl Ord for ProcessInfoFlags

§

impl Ord for ProcessOptions

§

impl Ord for ProcessStartData

§

impl Ord for Profile

§

impl Ord for Property

§

impl Ord for ProtocolPayload

§

impl Ord for QueryableMarker

§

impl Ord for QueryableQueryResponse

§

impl Ord for RaiseExceptionOptions

§

impl Ord for Range

§

impl Ord for ReadableMarker

§

impl Ord for ReadableReadRequest

§

impl Ord for ReadableReadResponse

§

impl Ord for ReaderError

§

impl Ord for RealInterruptKind

§

impl Ord for RealmExplorerMarker

§

impl Ord for RealmMarker

§

impl Ord for RealmQueryConnectToStorageAdminRequest

§

impl Ord for RealmQueryConstructNamespaceRequest

§

impl Ord for RealmQueryError

§

impl Ord for RealmQueryGetAllInstancesResponse

§

impl Ord for RealmQueryGetInstanceRequest

§

impl Ord for RealmQueryGetResolvedDeclarationRequest

§

impl Ord for RealmQueryGetResolvedDeclarationResponse

§

impl Ord for RealmQueryGetStructuredConfigRequest

§

impl Ord for RealmQueryMarker

§

impl Ord for RealmQueryOpenDirectoryRequest

§

impl Ord for RealmQueryResolveDeclarationResponse

§

impl Ord for ReceiverMarker

§

impl Ord for RelativePath

§

impl Ord for ResolveError

§

impl Ord for ResolverError

§

impl Ord for ResolverMarker

§

impl Ord for ResolverMarker

§

impl Ord for ResolverResolveRequest

§

impl Ord for ResolverResolveRequest

§

impl Ord for ResolverResolveResponse

§

impl Ord for ResolverResolveWithContextRequest

§

impl Ord for Resource

§

impl Ord for ResourceFlag

§

impl Ord for ResourceKind

§

impl Ord for Rights

§

impl Ord for RouteOutcome

§

impl Ord for RouteTarget

§

impl Ord for RouteValidatorError

§

impl Ord for RouteValidatorMarker

§

impl Ord for RouteValidatorRouteRequest

§

impl Ord for RouteValidatorValidateRequest

§

impl Ord for RouterError

§

impl Ord for RuntimeError

§

impl Ord for SampleCommitRequest

§

impl Ord for SampleMarker

§

impl Ord for SampleSinkMarker

§

impl Ord for SampleStrategy

§

impl Ord for SeekOrigin

§

impl Ord for SelfRef

§

impl Ord for Service

§

impl Ord for SetExtendedAttributeMode

§

impl Ord for Severity

§

impl Ord for Severity

§

impl Ord for Signals

§

impl Ord for Socket

§

impl Ord for SocketOpts

§

impl Ord for SocketReadOpts

§

impl Ord for SocketWriteOpts

§

impl Ord for StartError

§

impl Ord for StartupMode

§

impl Ord for StatusError

§

impl Ord for StatusError

§

impl Ord for StopError

§

impl Ord for StorageAdminDeleteComponentStorageRequest

§

impl Ord for StorageAdminDeleteComponentStorageRequest

§

impl Ord for StorageAdminListStorageInRealmRequest

§

impl Ord for StorageAdminListStorageInRealmRequest

§

impl Ord for StorageAdminMarker

§

impl Ord for StorageAdminMarker

§

impl Ord for StorageAdminOpenComponentStorageByIdRequest

§

impl Ord for StorageAdminOpenComponentStorageByIdRequest

§

impl Ord for StorageAdminOpenStorageRequest

§

impl Ord for StorageAdminOpenStorageRequest

§

impl Ord for StorageId

§

impl Ord for StorageIteratorMarker

§

impl Ord for StorageIteratorMarker

§

impl Ord for StorageIteratorNextResponse

§

impl Ord for StorageIteratorNextResponse

§

impl Ord for Stream

§

impl Ord for StreamMode

§

impl Ord for StreamOptions

§

impl Ord for StreamReadOptions

§

impl Ord for StreamWriteOptions

§

impl Ord for SuspendToken

§

impl Ord for SymlinkMarker

§

impl Ord for SymlinkObject

§

impl Ord for SyntheticTimeline

§

impl Ord for SystemControllerMarker

§

impl Ord for TaskProviderGetJobResponse

§

impl Ord for TaskProviderMarker

§

impl Ord for Thread

§

impl Ord for TicksUnit

§

impl Ord for Topic

§

impl Ord for TransferDataOptions

§

impl Ord for TreeListChildNamesRequest

§

impl Ord for TreeMarker

§

impl Ord for TreeNameIteratorGetNextResponse

§

impl Ord for TreeNameIteratorMarker

§

impl Ord for TreeOpenChildRequest

§

impl Ord for Unavailable

§

impl Ord for Unit

§

impl Ord for UnlinkFlags

§

impl Ord for UnresolveError

§

impl Ord for Url

§

impl Ord for UtcTimeline

§

impl Ord for Vcpu

§

impl Ord for VirtualInterruptKind

§

impl Ord for VirtualMemoryFeatureFlags

§

impl Ord for Vmar

§

impl Ord for VmarFlags

§

impl Ord for VmarFlagsExtended

§

impl Ord for VmarOp

§

impl Ord for Vmo

§

impl Ord for VmoChildOptions

§

impl Ord for VmoFlags

§

impl Ord for VmoInfoFlags

§

impl Ord for VmoOp

§

impl Ord for VmoOptions

§

impl Ord for VoidRef

§

impl Ord for WaitAsyncOpts

§

impl Ord for WaitResult

§

impl Ord for WatchEvent

§

impl Ord for WatchMask

§

impl Ord for WrappedCapabilityId

§

impl Ord for WritableMarker

§

impl Ord for WritableWriteRequest

§

impl Ord for WritableWriteResponse

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 PhantomContravariantLifetime<'a>

Source§

impl<'a> Ord for PhantomCovariantLifetime<'a>

Source§

impl<'a> Ord for PhantomInvariantLifetime<'a>

Source§

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

Source§

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

§

impl<'a> Ord for HandleDisposition<'a>

§

impl<'a> Ord for HandleOp<'a>

§

impl<'a, T> Ord for Unowned<'a, T>
where T: Ord + Into<NullableHandle>,

Source§

impl<'k> Ord for Key<'k>

§

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

1.0.0 (const: unstable) · Source§

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

1.0.0 (const: unstable) · Source§

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

§

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

§

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

§

impl<A> Ord for TinyVec<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,

1.4.0 · Source§

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

§

impl<K, T> Ord for Interrupt<K, T>
where K: Ord, T: Ord,

1.0.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.41.0 · Source§

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

§

impl<R, W> Ord for Fifo<R, W>

§

impl<Reference, Output> Ord for Clock<Reference, Output>
where Reference: Ord, Output: Ord,

Source§

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

Source§

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

1.0.0 (const: unstable) · 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,

Pointer comparison is by address, as produced by the [<*const T>::addr](pointer::addr) method.

1.0.0 · Source§

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

Pointer comparison is by address, as produced by the <*mut T>::addr method.

1.0.0 · Source§

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

Implements comparison of slices lexicographically.

1.0.0 (const: unstable) · Source§

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

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

Source§

impl<T> Ord for ArcKey<T>

Source§

impl<T> Ord for WeakKey<T>

Source§

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

Source§

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

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,

Source§

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

Source§

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

1.0.0 · Source§

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

Source§

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

1.20.0 · Source§

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

1.28.0 (const: unstable) · 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> Ord for Exclusive<T>
where T: Sync + Ord + ?Sized,

Source§

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

Source§

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

1.19.0 (const: unstable) · Source§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

1.0.0 · Source§

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

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,

Source§

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

1.0.0 · Source§

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

Implements ordering of vectors, lexicographically.

Source§

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

1.0.0 (const: unstable) · Source§

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

§

impl<T, U> Ord for Duration<T, U>
where T: Ord, U: Ord,

§

impl<T, U> Ord for Instant<T, U>
where T: Ord, U: Ord,

Source§

impl<T, const CAP: usize> Ord for arrayvec::arrayvec::ArrayVec<T, CAP>
where T: 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>

Lexicographic order. For the SIMD elementwise minimum and maximum, use simd_min and simd_max instead.

Source§

impl<T: Ord> Ord for UserRef<T>

Source§

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

Source§

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

Source§

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

Source§

impl<const CAP: usize> Ord for ArrayString<CAP>

§

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

§

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