pub trait PartialOrd<Rhs = Self>: PartialEq<Rhs>where
Rhs: ?Sized,{
// Required method
fn partial_cmp(&self, other: &Rhs) -> Option<Ordering>;
// Provided methods
fn lt(&self, other: &Rhs) -> bool { ... }
fn le(&self, other: &Rhs) -> bool { ... }
fn gt(&self, other: &Rhs) -> bool { ... }
fn ge(&self, other: &Rhs) -> bool { ... }
}Expand description
Trait for types that form a partial order.
The lt, le, gt, and ge methods of this trait can be called using the <, <=, >, and
>= operators, respectively.
This trait should only contain the comparison logic for a type if one plans on only
implementing PartialOrd but not Ord. Otherwise the comparison logic should be in Ord
and this trait implemented with Some(self.cmp(other)).
The methods of this trait must be consistent with each other and with those of PartialEq.
The following conditions must hold:
a == bif and only ifpartial_cmp(a, b) == Some(Equal).a < bif and only ifpartial_cmp(a, b) == Some(Less)a > bif and only ifpartial_cmp(a, b) == Some(Greater)a <= bif and only ifa < b || a == ba >= bif and only ifa > b || a == ba != bif and only if!(a == b).
Conditions 2–5 above are ensured by the default implementation. Condition 6 is already ensured
by PartialEq.
If Ord is also implemented for Self and Rhs, it must also be consistent with
partial_cmp (see the documentation of that trait for the exact requirements). It’s easy to
accidentally make them disagree by deriving some of the traits and manually implementing others.
The comparison relations must satisfy the following conditions (for all a, b, c of type
A, B, C):
- Transitivity: if
A: PartialOrd<B>andB: PartialOrd<C>andA: PartialOrd<C>, thena < bandb < cimpliesa < c. The same must hold for both==and>. This must also work for longer chains, such as whenA: PartialOrd<B>,B: PartialOrd<C>,C: PartialOrd<D>, andA: PartialOrd<D>all exist. - Duality: if
A: PartialOrd<B>andB: PartialOrd<A>, thena < bif and only ifb > a.
Note that the B: PartialOrd<A> (dual) and A: PartialOrd<C> (transitive) impls are not forced
to exist, but these requirements apply whenever they do exist.
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.
§Cross-crate considerations
Upholding the requirements stated above can become tricky when one crate implements PartialOrd
for a type of another crate (i.e., to allow comparing one of its own types with a type from the
standard library). The recommendation is to never implement this trait for a foreign type. In
other words, such a crate should do impl PartialOrd<ForeignType> for LocalType, but it should
not do impl PartialOrd<LocalType> for ForeignType.
This avoids the problem of transitive chains that criss-cross crate boundaries: for all local
types T, you may assume that no other crate will add impls that allow comparing T < U. In
other words, if other crates add impls that allow building longer transitive chains U1 < ... < T < V1 < ..., then all the types that appear to the right of T must be types that the crate
defining T already knows about. This rules out transitive chains where downstream crates can
add new impls that “stitch together” comparisons of foreign types in ways that violate
transitivity.
Not having such foreign impls also avoids forward compatibility issues where one crate adding
more PartialOrd implementations can cause build failures in downstream crates.
§Corollaries
The following corollaries follow from the above requirements:
- irreflexivity of
<and>:!(a < a),!(a > a) - transitivity of
>: ifa > bandb > cthena > c - duality of
partial_cmp:partial_cmp(a, b) == partial_cmp(b, a).map(Ordering::reverse)
§Strict and non-strict partial orders
The < and > operators behave according to a strict partial order. However, <= and >=
do not behave according to a non-strict partial order. That is because mathematically, a
non-strict partial order would require reflexivity, i.e. a <= a would need to be true for
every a. This isn’t always the case for types that implement PartialOrd, for example:
let a = f64::sqrt(-1.0);
assert_eq!(a <= a, false);§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 primarily ordered 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, PartialOrd)]
enum E {
Top,
Bottom,
}
assert!(E::Top < E::Bottom);However, manually setting the discriminants can override this default behavior:
#[derive(PartialEq, PartialOrd)]
enum E {
Top = 2,
Bottom = 1,
}
assert!(E::Bottom < E::Top);§How can I implement PartialOrd?
PartialOrd only requires implementation of the partial_cmp method, with the others
generated from default implementations.
However it remains possible to implement the others separately for types which do not have a
total order. For example, for floating point numbers, NaN < 0 == false and NaN >= 0 == false
(cf. IEEE 754-2008 section 5.11).
PartialOrd requires your type to be PartialEq.
If your type is Ord, you can implement partial_cmp by using cmp:
use std::cmp::Ordering;
struct Person {
id: u32,
name: String,
height: u32,
}
impl PartialOrd for Person {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
Some(self.cmp(other))
}
}
impl Ord for Person {
fn cmp(&self, other: &Self) -> Ordering {
self.height.cmp(&other.height)
}
}
impl PartialEq for Person {
fn eq(&self, other: &Self) -> bool {
self.height == other.height
}
}
impl Eq for Person {}You may also find it useful to use partial_cmp on your type’s fields. Here is an example of
Person types who have a floating-point height field that is the only field to be used for
sorting:
use std::cmp::Ordering;
struct Person {
id: u32,
name: String,
height: f64,
}
impl PartialOrd for Person {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
self.height.partial_cmp(&other.height)
}
}
impl PartialEq for Person {
fn eq(&self, other: &Self) -> bool {
self.height == other.height
}
}§Examples of incorrect PartialOrd implementations
use std::cmp::Ordering;
#[derive(PartialEq, Debug)]
struct Character {
health: u32,
experience: u32,
}
impl PartialOrd for Character {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
Some(self.health.cmp(&other.health))
}
}
let a = Character {
health: 10,
experience: 5,
};
let b = Character {
health: 10,
experience: 77,
};
// Mistake: `PartialEq` and `PartialOrd` disagree with each other.
assert_eq!(a.partial_cmp(&b).unwrap(), Ordering::Equal); // a == b according to `PartialOrd`.
assert_ne!(a, b); // a != b according to `PartialEq`.§Examples
let x: u32 = 0;
let y: u32 = 1;
assert_eq!(x < y, true);
assert_eq!(x.lt(&y), true);Required Methods§
1.0.0 · Sourcefn partial_cmp(&self, other: &Rhs) -> Option<Ordering>
fn partial_cmp(&self, other: &Rhs) -> Option<Ordering>
This method returns an ordering between self and other values if one exists.
§Examples
use std::cmp::Ordering;
let result = 1.0.partial_cmp(&2.0);
assert_eq!(result, Some(Ordering::Less));
let result = 1.0.partial_cmp(&1.0);
assert_eq!(result, Some(Ordering::Equal));
let result = 2.0.partial_cmp(&1.0);
assert_eq!(result, Some(Ordering::Greater));When comparison is impossible:
let result = f64::NAN.partial_cmp(&1.0);
assert_eq!(result, None);Provided Methods§
1.0.0 · Sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
Tests less than (for self and other) and is used by the < operator.
§Examples
assert_eq!(1.0 < 1.0, false);
assert_eq!(1.0 < 2.0, true);
assert_eq!(2.0 < 1.0, false);1.0.0 · Sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
Tests less than or equal to (for self and other) and is used by the
<= operator.
§Examples
assert_eq!(1.0 <= 1.0, true);
assert_eq!(1.0 <= 2.0, true);
assert_eq!(2.0 <= 1.0, false);Implementors§
impl PartialOrd for FileLeaseType
impl PartialOrd for IptIpFlags
impl PartialOrd for AsciiChar
impl PartialOrd for Infallible
impl PartialOrd for IpAddr
impl PartialOrd for SocketAddr
impl PartialOrd for Ordering
impl PartialOrd for ErrorKind
impl PartialOrd for Month
impl PartialOrd for log::Level
impl PartialOrd for LevelFilter
impl PartialOrd for zerocopy::byteorder::BigEndian
impl PartialOrd for zerocopy::byteorder::LittleEndian
impl PartialOrd for bool
impl PartialOrd for char
impl PartialOrd for f16
impl PartialOrd for f32
impl PartialOrd for f64
impl PartialOrd for f128
impl PartialOrd for i8
impl PartialOrd for i16
impl PartialOrd for i32
impl PartialOrd for i64
impl PartialOrd for i128
impl PartialOrd for isize
impl PartialOrd for !
impl PartialOrd for str
Implements comparison operations on strings.
Strings are compared lexicographically by their byte values. This compares 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. Comparing strings according to
culturally-accepted standards requires locale-specific data that is outside the scope of
the str type.
impl PartialOrd for u8
impl PartialOrd for u16
impl PartialOrd for u32
impl PartialOrd for u64
impl PartialOrd for u128
impl PartialOrd for ()
impl PartialOrd for usize
impl PartialOrd for PtraceAccessMode
impl PartialOrd for SecureBits
impl PartialOrd for DeviceType
impl PartialOrd for Access
impl PartialOrd for InotifyMask
impl PartialOrd for IptIpFlagsV4
impl PartialOrd for IptIpFlagsV6
impl PartialOrd for IptIpInverseFlags
impl PartialOrd for NfIpHooks
impl PartialOrd for NfNatRangeFlags
impl PartialOrd for XtTcpInverseFlags
impl PartialOrd for XtUdpInverseFlags
impl PartialOrd for MountFlags
impl PartialOrd for starnix_uapi::open_flags::OpenFlags
impl PartialOrd for PersonalityFlags
impl PartialOrd for SealFlags
impl PartialOrd for uaddr32
impl PartialOrd for uaddr
impl PartialOrd for UnmountFlags
impl PartialOrd for UserAddress32
impl PartialOrd for UserAddress
impl PartialOrd for FdEvents
impl PartialOrd for ResolveFlags
impl PartialOrd for TypeId
impl PartialOrd for CpuidResult
impl PartialOrd for ByteStr
impl PartialOrd for CStr
impl PartialOrd for starnix_uapi::arch32::__static_assertions::_core::fmt::Error
impl PartialOrd for PhantomPinned
impl PartialOrd for Ipv4Addr
impl PartialOrd for Ipv6Addr
impl PartialOrd for SocketAddrV4
impl PartialOrd for SocketAddrV6
impl PartialOrd for Location<'_>
impl PartialOrd for Alignment
impl PartialOrd for starnix_uapi::arch32::__static_assertions::_core::time::Duration
impl PartialOrd for ByteString
impl PartialOrd for CString
impl PartialOrd for String
impl PartialOrd for OsStr
impl PartialOrd for OsString
impl PartialOrd for std::path::Path
impl PartialOrd for PathBuf
impl PartialOrd for std::time::Instant
impl PartialOrd for SystemTime
impl PartialOrd for Months
impl PartialOrd for NaiveDate
impl PartialOrd for NaiveDateDaysIterator
impl PartialOrd for NaiveDateWeeksIterator
impl PartialOrd for NaiveDateTime
impl PartialOrd for IsoWeek
impl PartialOrd for Days
impl PartialOrd for NaiveTime
impl PartialOrd for TimeDelta
impl PartialOrd for WeekdaySet
impl PartialOrd for url::Url
URLs compare like their serialization.
impl PartialOrd for BStr
impl PartialOrd for BString
impl PartialOrd for BugRef
impl PartialOrd for Status
impl PartialOrd for AddressTaggingFeatureFlags
impl PartialOrd for AdvisoryLockRange
impl PartialOrd for AdvisoryLockType
impl PartialOrd for AdvisoryLockingMarker
impl PartialOrd for All
impl PartialOrd for AllocateMode
impl PartialOrd for AllowedOffers
impl PartialOrd for ArchiveAccessorMarker
impl PartialOrd for AtRestFlags
impl PartialOrd for Availability
impl PartialOrd for Availability
impl PartialOrd for Availability
impl PartialOrd for BatchIteratorMarker
impl PartialOrd for BigEndian
impl PartialOrd for BinderMarker
impl PartialOrd for BlockIndex
impl PartialOrd for BlockType
impl PartialOrd for BootControllerMarker
impl PartialOrd for BootInstant
impl PartialOrd for BootTimeline
impl PartialOrd for BorrowedChildName
impl PartialOrd for Bti
impl PartialOrd for Bti
impl PartialOrd for BtiOptions
impl PartialOrd for Buffer
impl PartialOrd for CapabilityRef
impl PartialOrd for CapabilityStoreConnectorCreateRequest
impl PartialOrd for CapabilityStoreConnectorOpenRequest
impl PartialOrd for CapabilityStoreDictionaryCopyRequest
impl PartialOrd for CapabilityStoreDictionaryCreateRequest
impl PartialOrd for CapabilityStoreDictionaryDrainRequest
impl PartialOrd for CapabilityStoreDictionaryEnumerateRequest
impl PartialOrd for CapabilityStoreDictionaryGetRequest
impl PartialOrd for CapabilityStoreDictionaryInsertRequest
impl PartialOrd for CapabilityStoreDictionaryKeysRequest
impl PartialOrd for CapabilityStoreDictionaryLegacyExportRequest
impl PartialOrd for CapabilityStoreDictionaryLegacyImportRequest
impl PartialOrd for CapabilityStoreDictionaryRemoveRequest
impl PartialOrd for CapabilityStoreDirConnectorCreateRequest
impl PartialOrd for CapabilityStoreDropRequest
impl PartialOrd for CapabilityStoreDuplicateRequest
impl PartialOrd for CapabilityStoreError
impl PartialOrd for CapabilityStoreExportRequest
impl PartialOrd for CapabilityStoreMarker
impl PartialOrd for Channel
impl PartialOrd for ChildIteratorMarker
impl PartialOrd for ChildName
impl PartialOrd for ChildRef
impl PartialOrd for ClockOpts
impl PartialOrd for CloneableCloneRequest
impl PartialOrd for CloneableMarker
impl PartialOrd for CloseableMarker
impl PartialOrd for CollectionRef
impl PartialOrd for ComponentControllerMarker
impl PartialOrd for ComponentRunnerMarker
impl PartialOrd for ConfigMutability
impl PartialOrd for ConfigMutability
impl PartialOrd for ConfigOverrideError
impl PartialOrd for ConfigOverrideMarker
impl PartialOrd for ConfigOverrideUnsetStructuredConfigRequest
impl PartialOrd for ConfigTypeLayout
impl PartialOrd for ConfigurationError
impl PartialOrd for ConnectToStorageAdminError
impl PartialOrd for Connector
impl PartialOrd for ConnectorRouterMarker
impl PartialOrd for ConnectorRouterRouteResponse
impl PartialOrd for ConstructNamespaceError
impl PartialOrd for Context
impl PartialOrd for ControllerIsStartedResponse
impl PartialOrd for ControllerMarker
impl PartialOrd for ControllerOpenExposedDirRequest
impl PartialOrd for Counter
impl PartialOrd for CpuFeatureFlags
impl PartialOrd for CrashIntrospectFindComponentByThreadKoidRequest
impl PartialOrd for CrashIntrospectMarker
impl PartialOrd for CreateError
impl PartialOrd for DataRouterMarker
impl PartialOrd for DataType
impl PartialOrd for DebugLog
impl PartialOrd for DebugLogOpts
impl PartialOrd for DebugLogSeverity
impl PartialOrd for DebugRef
impl PartialOrd for DeclType
impl PartialOrd for DeletionError
impl PartialOrd for DeletionError
impl PartialOrd for DeliveryType
impl PartialOrd for DependencyNode
impl PartialOrd for DependencyType
impl PartialOrd for DestroyError
impl PartialOrd for DictionaryDrainIteratorGetNextRequest
impl PartialOrd for DictionaryDrainIteratorGetNextResponse
impl PartialOrd for DictionaryDrainIteratorMarker
impl PartialOrd for DictionaryEnumerateIteratorGetNextRequest
impl PartialOrd for DictionaryEnumerateIteratorGetNextResponse
impl PartialOrd for DictionaryEnumerateIteratorMarker
impl PartialOrd for DictionaryError
impl PartialOrd for DictionaryItem
impl PartialOrd for DictionaryKeysIteratorGetNextResponse
impl PartialOrd for DictionaryKeysIteratorMarker
impl PartialOrd for DictionaryMarker
impl PartialOrd for DictionaryOptionalItem
impl PartialOrd for DictionaryRef
impl PartialOrd for DictionaryRouterMarker
impl PartialOrd for DictionaryRouterRouteResponse
impl PartialOrd for DirConnector
impl PartialOrd for DirConnectorRouterMarker
impl PartialOrd for DirConnectorRouterRouteResponse
impl PartialOrd for DirEntry
impl PartialOrd for DirEntryRouterMarker
impl PartialOrd for DirEntryRouterRouteResponse
impl PartialOrd for DirReceiverMarker
impl PartialOrd for DirectoryCreateSymlinkRequest
impl PartialOrd for DirectoryDeprecatedOpenRequest
impl PartialOrd for DirectoryGetTokenResponse
impl PartialOrd for DirectoryLinkRequest
impl PartialOrd for DirectoryLinkResponse
impl PartialOrd for DirectoryMarker
impl PartialOrd for DirectoryObject
impl PartialOrd for DirectoryReadDirentsRequest
impl PartialOrd for DirectoryReadDirentsResponse
impl PartialOrd for DirectoryRenameRequest
impl PartialOrd for DirectoryRewindResponse
impl PartialOrd for DirectoryRouterMarker
impl PartialOrd for DirectoryRouterRouteResponse
impl PartialOrd for DirectoryWatchRequest
impl PartialOrd for DirectoryWatchResponse
impl PartialOrd for DirectoryWatcherMarker
impl PartialOrd for DirentType
impl PartialOrd for Durability
impl PartialOrd for DynamicFlags
impl PartialOrd for EmptyStruct
impl PartialOrd for EnvironmentExtends
impl PartialOrd for EnvironmentRef
impl PartialOrd for Error
impl PartialOrd for EscrowToken
impl PartialOrd for Event
impl PartialOrd for EventPair
impl PartialOrd for EventStreamMarker
impl PartialOrd for EventType
impl PartialOrd for Exception
impl PartialOrd for Exception
impl PartialOrd for ExceptionChannelOptions
impl PartialOrd for ExecutionControllerMarker
impl PartialOrd for ExposeTarget
impl PartialOrd for ExtendedAttributeIteratorGetNextResponse
impl PartialOrd for ExtendedAttributeIteratorMarker
impl PartialOrd for ExtendedMoniker
impl PartialOrd for FileAllocateRequest
impl PartialOrd for FileGetBackingMemoryRequest
impl PartialOrd for FileGetBackingMemoryResponse
impl PartialOrd for FileMarker
impl PartialOrd for FileObject
impl PartialOrd for FileReadAtRequest
impl PartialOrd for FileReadAtResponse
impl PartialOrd for FileResizeRequest
impl PartialOrd for FileSeekRequest
impl PartialOrd for FileSeekResponse
impl PartialOrd for FileSignal
impl PartialOrd for FileWriteAtRequest
impl PartialOrd for FileWriteAtResponse
impl PartialOrd for FilesystemInfo
impl PartialOrd for Flags
impl PartialOrd for FlyByteStr
impl PartialOrd for FlyStr
impl PartialOrd for Format
impl PartialOrd for FrameworkErr
impl PartialOrd for FrameworkRef
impl PartialOrd for GPAddr
impl PartialOrd for GetAllInstancesError
impl PartialOrd for GetDeclarationError
impl PartialOrd for GetInstanceError
impl PartialOrd for GetStructuredConfigError
impl PartialOrd for Guest
impl PartialOrd for Handle
impl PartialOrd for HandleInfo
impl PartialOrd for HandleInfo
impl PartialOrd for HashAlgorithm
impl PartialOrd for InspectSinkMarker
impl PartialOrd for InstanceIteratorMarker
impl PartialOrd for InstanceToken
impl PartialOrd for InstanceType
impl PartialOrd for IntrospectorGetMonikerRequest
impl PartialOrd for IntrospectorGetMonikerResponse
impl PartialOrd for IntrospectorMarker
impl PartialOrd for Iob
impl PartialOrd for IobAccess
impl PartialOrd for Iommu
impl PartialOrd for Iommu
impl PartialOrd for Job
impl PartialOrd for JobCriticalOptions
impl PartialOrd for Koid
impl PartialOrd for LaunchInfo
impl PartialOrd for LauncherAddArgsRequest
impl PartialOrd for LauncherAddEnvironsRequest
impl PartialOrd for LauncherAddHandlesRequest
impl PartialOrd for LauncherAddNamesRequest
impl PartialOrd for LauncherCreateWithoutStartingRequest
impl PartialOrd for LauncherCreateWithoutStartingResponse
impl PartialOrd for LauncherLaunchRequest
impl PartialOrd for LauncherLaunchResponse
impl PartialOrd for LauncherMarker
impl PartialOrd for LauncherSetOptionsRequest
impl PartialOrd for Level
impl PartialOrd for LifecycleControllerMarker
impl PartialOrd for LifecycleControllerResolveInstanceRequest
impl PartialOrd for LifecycleControllerStartInstanceRequest
impl PartialOrd for LifecycleControllerStopInstanceRequest
impl PartialOrd for LifecycleControllerUnresolveInstanceRequest
impl PartialOrd for LinkableLinkIntoRequest
impl PartialOrd for LinkableMarker
impl PartialOrd for LittleEndian
impl PartialOrd for LoaderCloneRequest
impl PartialOrd for LoaderCloneResponse
impl PartialOrd for LoaderConfigRequest
impl PartialOrd for LoaderConfigResponse
impl PartialOrd for LoaderLoadObjectRequest
impl PartialOrd for LoaderLoadObjectResponse
impl PartialOrd for LoaderMarker
impl PartialOrd for LogFlusherMarker
impl PartialOrd for LogSettingsMarker
impl PartialOrd for LogStreamMarker
impl PartialOrd for ManifestBytesIteratorMarker
impl PartialOrd for ManifestBytesIteratorNextResponse
impl PartialOrd for MemoryStallKind
impl PartialOrd for ModeType
impl PartialOrd for Moniker
impl PartialOrd for MonotonicInstant
impl PartialOrd for MonotonicTimeline
impl PartialOrd for Msi
impl PartialOrd for Name
impl PartialOrd for Name
impl PartialOrd for NameInfo
impl PartialOrd for NameMapping
impl PartialOrd for NamespaceCreateRequest
impl PartialOrd for NamespaceError
impl PartialOrd for NamespaceInputEntry
impl PartialOrd for NamespaceMarker
impl PartialOrd for NamespacePath
impl PartialOrd for NodeAttributeFlags
impl PartialOrd for NodeAttributes
impl PartialOrd for NodeAttributesQuery
impl PartialOrd for NodeDeprecatedCloneRequest
impl PartialOrd for NodeDeprecatedGetAttrResponse
impl PartialOrd for NodeDeprecatedGetFlagsResponse
impl PartialOrd for NodeDeprecatedSetAttrRequest
impl PartialOrd for NodeDeprecatedSetAttrResponse
impl PartialOrd for NodeDeprecatedSetFlagsRequest
impl PartialOrd for NodeDeprecatedSetFlagsResponse
impl PartialOrd for NodeGetAttributesRequest
impl PartialOrd for NodeGetExtendedAttributeRequest
impl PartialOrd for NodeGetFlagsResponse
impl PartialOrd for NodeInfoDeprecated
impl PartialOrd for NodeListExtendedAttributesRequest
impl PartialOrd for NodeMarker
impl PartialOrd for NodeOnOpenRequest
impl PartialOrd for NodeProtocolKinds
impl PartialOrd for NodeQueryFilesystemResponse
impl PartialOrd for NodeRemoveExtendedAttributeRequest
impl PartialOrd for NodeSetFlagsRequest
impl PartialOrd for NsUnit
impl PartialOrd for NullableHandle
impl PartialOrd for ObjectType
impl PartialOrd for OnTerminate
impl PartialOrd for OpenDirType
impl PartialOrd for OpenError
impl PartialOrd for OpenFlags
impl PartialOrd for Operations
impl PartialOrd for Pager
impl PartialOrd for Pager
impl PartialOrd for PagerOptions
impl PartialOrd for PagerWritebackBeginOptions
impl PartialOrd for ParentRef
impl PartialOrd for Path
impl PartialOrd for PciDevice
impl PartialOrd for Pmt
impl PartialOrd for Pmt
impl PartialOrd for Port
impl PartialOrd for Process
impl PartialOrd for ProcessInfoFlags
impl PartialOrd for ProcessOptions
impl PartialOrd for ProcessStartData
impl PartialOrd for Profile
impl PartialOrd for Property
impl PartialOrd for ProtocolPayload
impl PartialOrd for QueryableMarker
impl PartialOrd for QueryableQueryResponse
impl PartialOrd for RaiseExceptionOptions
impl PartialOrd for Range
impl PartialOrd for ReadableMarker
impl PartialOrd for ReadableReadRequest
impl PartialOrd for ReadableReadResponse
impl PartialOrd for ReaderError
impl PartialOrd for RealInterruptKind
impl PartialOrd for RealmExplorerMarker
impl PartialOrd for RealmMarker
impl PartialOrd for RealmQueryConnectToStorageAdminRequest
impl PartialOrd for RealmQueryConstructNamespaceRequest
impl PartialOrd for RealmQueryError
impl PartialOrd for RealmQueryGetAllInstancesResponse
impl PartialOrd for RealmQueryGetInstanceRequest
impl PartialOrd for RealmQueryGetResolvedDeclarationRequest
impl PartialOrd for RealmQueryGetResolvedDeclarationResponse
impl PartialOrd for RealmQueryGetStructuredConfigRequest
impl PartialOrd for RealmQueryMarker
impl PartialOrd for RealmQueryOpenDirectoryRequest
impl PartialOrd for RealmQueryResolveDeclarationResponse
impl PartialOrd for ReceiverMarker
impl PartialOrd for RelativePath
impl PartialOrd for ResolveError
impl PartialOrd for ResolverError
impl PartialOrd for ResolverMarker
impl PartialOrd for ResolverMarker
impl PartialOrd for ResolverResolveRequest
impl PartialOrd for ResolverResolveRequest
impl PartialOrd for ResolverResolveResponse
impl PartialOrd for ResolverResolveWithContextRequest
impl PartialOrd for Resource
impl PartialOrd for ResourceFlag
impl PartialOrd for ResourceKind
impl PartialOrd for Rights
impl PartialOrd for RouteOutcome
impl PartialOrd for RouteTarget
impl PartialOrd for RouteValidatorError
impl PartialOrd for RouteValidatorMarker
impl PartialOrd for RouteValidatorRouteRequest
impl PartialOrd for RouteValidatorValidateRequest
impl PartialOrd for RouterError
impl PartialOrd for RuntimeError
impl PartialOrd for SampleCommitRequest
impl PartialOrd for SampleMarker
impl PartialOrd for SampleSinkMarker
impl PartialOrd for SampleStrategy
impl PartialOrd for SeekOrigin
impl PartialOrd for SelfRef
impl PartialOrd for Service
impl PartialOrd for SetExtendedAttributeMode
impl PartialOrd for Severity
impl PartialOrd for Severity
impl PartialOrd for Signals
impl PartialOrd for Socket
impl PartialOrd for SocketOpts
impl PartialOrd for SocketReadOpts
impl PartialOrd for SocketWriteOpts
impl PartialOrd for StartError
impl PartialOrd for StartupMode
impl PartialOrd for StatusError
impl PartialOrd for StatusError
impl PartialOrd for StopError
impl PartialOrd for StorageAdminDeleteComponentStorageRequest
impl PartialOrd for StorageAdminDeleteComponentStorageRequest
impl PartialOrd for StorageAdminListStorageInRealmRequest
impl PartialOrd for StorageAdminListStorageInRealmRequest
impl PartialOrd for StorageAdminMarker
impl PartialOrd for StorageAdminMarker
impl PartialOrd for StorageAdminOpenComponentStorageByIdRequest
impl PartialOrd for StorageAdminOpenComponentStorageByIdRequest
impl PartialOrd for StorageAdminOpenStorageRequest
impl PartialOrd for StorageAdminOpenStorageRequest
impl PartialOrd for StorageId
impl PartialOrd for StorageIteratorMarker
impl PartialOrd for StorageIteratorMarker
impl PartialOrd for StorageIteratorNextResponse
impl PartialOrd for StorageIteratorNextResponse
impl PartialOrd for Stream
impl PartialOrd for StreamMode
impl PartialOrd for StreamOptions
impl PartialOrd for StreamReadOptions
impl PartialOrd for StreamWriteOptions
impl PartialOrd for SuspendToken
impl PartialOrd for SymlinkMarker
impl PartialOrd for SymlinkObject
impl PartialOrd for SyntheticTimeline
impl PartialOrd for SystemControllerMarker
impl PartialOrd for TaskProviderGetJobResponse
impl PartialOrd for TaskProviderMarker
impl PartialOrd for Thread
impl PartialOrd for TicksUnit
impl PartialOrd for Topic
impl PartialOrd for TransferDataOptions
impl PartialOrd for TreeListChildNamesRequest
impl PartialOrd for TreeMarker
impl PartialOrd for TreeNameIteratorGetNextResponse
impl PartialOrd for TreeNameIteratorMarker
impl PartialOrd for TreeOpenChildRequest
impl PartialOrd for Unit
impl PartialOrd for UnlinkFlags
impl PartialOrd for UnresolveError
impl PartialOrd for Url
impl PartialOrd for UtcTimeline
impl PartialOrd for Vcpu
impl PartialOrd for VirtualInterruptKind
impl PartialOrd for VirtualMemoryFeatureFlags
impl PartialOrd for Vmar
impl PartialOrd for VmarFlags
impl PartialOrd for VmarFlagsExtended
impl PartialOrd for VmarOp
impl PartialOrd for Vmo
impl PartialOrd for VmoChildOptions
impl PartialOrd for VmoFlags
impl PartialOrd for VmoInfoFlags
impl PartialOrd for VmoOp
impl PartialOrd for VmoOptions
impl PartialOrd for VoidRef
impl PartialOrd for WaitAsyncOpts
impl PartialOrd for WaitResult
impl PartialOrd for WatchEvent
impl PartialOrd for WatchMask
impl PartialOrd for WrappedCapabilityId
impl PartialOrd for WritableMarker
impl PartialOrd for WritableWriteRequest
impl PartialOrd for WritableWriteResponse
impl PartialOrd<&str> for FlyByteStr
impl PartialOrd<&str> for FlyStr
impl PartialOrd<&FlyByteStr> for FlyStr
impl PartialOrd<IpAddr> for Ipv4Addr
impl PartialOrd<IpAddr> for Ipv6Addr
impl PartialOrd<Level> for LevelFilter
impl PartialOrd<LevelFilter> for log::Level
impl PartialOrd<str> for OsStr
impl PartialOrd<str> for OsString
impl PartialOrd<str> for FlyByteStr
impl PartialOrd<str> for FlyStr
impl PartialOrd<Ipv4Addr> for IpAddr
impl PartialOrd<Ipv6Addr> for IpAddr
impl PartialOrd<OsStr> for std::path::Path
impl PartialOrd<OsStr> for PathBuf
impl PartialOrd<OsString> for std::path::Path
impl PartialOrd<OsString> for PathBuf
impl PartialOrd<Path> for OsStr
impl PartialOrd<Path> for OsString
impl PartialOrd<Path> for PathBuf
impl PartialOrd<PathBuf> for OsStr
impl PartialOrd<PathBuf> for OsString
impl PartialOrd<PathBuf> for std::path::Path
impl PartialOrd<FlyByteStr> for FlyStr
impl PartialOrd<FlyStr> for FlyByteStr
impl<'a> PartialOrd for Component<'a>
impl<'a> PartialOrd for Prefix<'a>
impl<'a> PartialOrd for PhantomContravariantLifetime<'a>
impl<'a> PartialOrd for PhantomCovariantLifetime<'a>
impl<'a> PartialOrd for PhantomInvariantLifetime<'a>
impl<'a> PartialOrd for Components<'a>
impl<'a> PartialOrd for PrefixComponent<'a>
impl<'a> PartialOrd for Metadata<'a>
impl<'a> PartialOrd for MetadataBuilder<'a>
impl<'a> PartialOrd for HandleDisposition<'a>
impl<'a> PartialOrd for HandleOp<'a>
impl<'a> PartialOrd<&'a str> for BStr
impl<'a> PartialOrd<&'a str> for BString
impl<'a> PartialOrd<&'a ByteStr> for Cow<'a, str>
impl<'a> PartialOrd<&'a ByteStr> for Cow<'a, ByteStr>
impl<'a> PartialOrd<&'a ByteStr> for Cow<'a, [u8]>
impl<'a> PartialOrd<&'a OsStr> for std::path::Path
impl<'a> PartialOrd<&'a OsStr> for PathBuf
impl<'a> PartialOrd<&'a Path> for OsStr
impl<'a> PartialOrd<&'a Path> for OsString
impl<'a> PartialOrd<&'a Path> for PathBuf
impl<'a> PartialOrd<&'a BStr> for String
impl<'a> PartialOrd<&'a BStr> for Vec<u8>
impl<'a> PartialOrd<&'a BStr> for BString
impl<'a> PartialOrd<&'a [u8]> for BStr
impl<'a> PartialOrd<&'a [u8]> for BString
impl<'a> PartialOrd<&ByteStr> for ByteString
impl<'a> PartialOrd<Cow<'_, str>> for ByteString
impl<'a> PartialOrd<Cow<'_, ByteStr>> for ByteString
impl<'a> PartialOrd<Cow<'_, [u8]>> for ByteString
impl<'a> PartialOrd<Cow<'a, str>> for &'a ByteStr
impl<'a> PartialOrd<Cow<'a, ByteStr>> for &'a ByteStr
impl<'a> PartialOrd<Cow<'a, OsStr>> for std::path::Path
impl<'a> PartialOrd<Cow<'a, OsStr>> for PathBuf
impl<'a> PartialOrd<Cow<'a, Path>> for OsStr
impl<'a> PartialOrd<Cow<'a, Path>> for OsString
impl<'a> PartialOrd<Cow<'a, Path>> for std::path::Path
impl<'a> PartialOrd<Cow<'a, Path>> for PathBuf
impl<'a> PartialOrd<Cow<'a, [u8]>> for &'a ByteStr
impl<'a> PartialOrd<str> for BStr
impl<'a> PartialOrd<str> for BString
impl<'a> PartialOrd<ByteStr> for ByteString
impl<'a> PartialOrd<ByteString> for &ByteStr
impl<'a> PartialOrd<ByteString> for Cow<'_, str>
impl<'a> PartialOrd<ByteString> for Cow<'_, ByteStr>
impl<'a> PartialOrd<ByteString> for Cow<'_, [u8]>
impl<'a> PartialOrd<ByteString> for ByteStr
impl<'a> PartialOrd<String> for &'a BStr
impl<'a> PartialOrd<String> for BStr
impl<'a> PartialOrd<String> for BString
impl<'a> PartialOrd<Vec<u8>> for &'a BStr
impl<'a> PartialOrd<Vec<u8>> for BStr
impl<'a> PartialOrd<Vec<u8>> for BString
impl<'a> PartialOrd<OsStr> for &'a std::path::Path
impl<'a> PartialOrd<OsStr> for Cow<'a, Path>
impl<'a> PartialOrd<OsString> for &'a std::path::Path
impl<'a> PartialOrd<OsString> for Cow<'a, Path>
impl<'a> PartialOrd<Path> for &'a OsStr
impl<'a> PartialOrd<Path> for Cow<'a, OsStr>
impl<'a> PartialOrd<Path> for Cow<'a, Path>
impl<'a> PartialOrd<PathBuf> for &'a OsStr
impl<'a> PartialOrd<PathBuf> for &'a std::path::Path
impl<'a> PartialOrd<PathBuf> for Cow<'a, OsStr>
impl<'a> PartialOrd<PathBuf> for Cow<'a, Path>
impl<'a> PartialOrd<BStr> for &'a str
impl<'a> PartialOrd<BStr> for &'a [u8]
impl<'a> PartialOrd<BStr> for str
impl<'a> PartialOrd<BStr> for String
impl<'a> PartialOrd<BStr> for Vec<u8>
impl<'a> PartialOrd<BStr> for BString
impl<'a> PartialOrd<BStr> for [u8]
impl<'a> PartialOrd<BString> for &'a str
impl<'a> PartialOrd<BString> for &'a BStr
impl<'a> PartialOrd<BString> for &'a [u8]
impl<'a> PartialOrd<BString> for str
impl<'a> PartialOrd<BString> for String
impl<'a> PartialOrd<BString> for Vec<u8>
impl<'a> PartialOrd<BString> for BStr
impl<'a> PartialOrd<BString> for [u8]
impl<'a> PartialOrd<[u8]> for BStr
impl<'a> PartialOrd<[u8]> for BString
impl<'a, 'b> PartialOrd<&'a OsStr> for OsString
impl<'a, 'b> PartialOrd<&'a Path> for Cow<'b, OsStr>
impl<'a, 'b> PartialOrd<&'b OsStr> for Cow<'a, OsStr>
impl<'a, 'b> PartialOrd<&'b OsStr> for Cow<'a, Path>
impl<'a, 'b> PartialOrd<&'b Path> for Cow<'a, Path>
impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for &'b OsStr
impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for OsStr
impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for OsString
impl<'a, 'b> PartialOrd<Cow<'a, Path>> for &'b OsStr
impl<'a, 'b> PartialOrd<Cow<'a, Path>> for &'b std::path::Path
impl<'a, 'b> PartialOrd<Cow<'b, OsStr>> for &'a std::path::Path
impl<'a, 'b> PartialOrd<OsStr> for Cow<'a, OsStr>
impl<'a, 'b> PartialOrd<OsStr> for OsString
impl<'a, 'b> PartialOrd<OsString> for &'a OsStr
impl<'a, 'b> PartialOrd<OsString> for Cow<'a, OsStr>
impl<'a, 'b> PartialOrd<OsString> for OsStr
impl<'a, B> PartialOrd for Cow<'a, B>
impl<'a, T> PartialOrd for Unowned<'a, T>where
T: PartialOrd + Into<NullableHandle>,
impl<'a, const N: usize> PartialOrd<&'a [u8; N]> for BStr
impl<'a, const N: usize> PartialOrd<&'a [u8; N]> for BString
impl<'a, const N: usize> PartialOrd<BStr> for &'a [u8; N]
impl<'a, const N: usize> PartialOrd<BStr> for [u8; N]
impl<'a, const N: usize> PartialOrd<BString> for &'a [u8; N]
impl<'a, const N: usize> PartialOrd<BString> for [u8; N]
impl<'a, const N: usize> PartialOrd<[u8; N]> for BStr
impl<'a, const N: usize> PartialOrd<[u8; N]> for BString
impl<'k> PartialOrd for Key<'k>
impl<'s, T> PartialOrd for SliceVec<'s, T>where
T: PartialOrd,
impl<A> PartialOrd for ArrayVec<A>where
A: Array,
<A as Array>::Item: PartialOrd,
impl<A> PartialOrd for SmallVec<A>where
A: Array,
<A as Array>::Item: PartialOrd,
impl<A> PartialOrd for TinyVec<A>where
A: Array,
<A as Array>::Item: PartialOrd,
impl<A, B> PartialOrd<&B> for &A
impl<A, B> PartialOrd<&mut B> for &mut A
impl<Dyn> PartialOrd for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<F> PartialOrd for Fwhere
F: FnPtr,
impl<K, T> PartialOrd for Interrupt<K, T>where
K: PartialOrd,
T: PartialOrd,
impl<K, V, A> PartialOrd for BTreeMap<K, V, A>
impl<L, R> PartialOrd for Either<L, R>where
L: PartialOrd,
R: PartialOrd,
impl<O> PartialOrd for F32<O>where
O: ByteOrder,
impl<O> PartialOrd for F64<O>where
O: ByteOrder,
impl<O> PartialOrd for I16<O>where
O: ByteOrder,
impl<O> PartialOrd for I32<O>where
O: ByteOrder,
impl<O> PartialOrd for I64<O>where
O: ByteOrder,
impl<O> PartialOrd for I128<O>where
O: ByteOrder,
impl<O> PartialOrd for Isize<O>where
O: ByteOrder,
impl<O> PartialOrd for U16<O>where
O: ByteOrder,
impl<O> PartialOrd for U32<O>where
O: ByteOrder,
impl<O> PartialOrd for U64<O>where
O: ByteOrder,
impl<O> PartialOrd for U128<O>where
O: ByteOrder,
impl<O> PartialOrd for Usize<O>where
O: ByteOrder,
impl<O> PartialOrd<i16> for I16<O>where
O: ByteOrder,
impl<O> PartialOrd<i32> for I32<O>where
O: ByteOrder,
impl<O> PartialOrd<i64> for I64<O>where
O: ByteOrder,
impl<O> PartialOrd<i128> for I128<O>where
O: ByteOrder,
impl<O> PartialOrd<isize> for Isize<O>where
O: ByteOrder,
impl<O> PartialOrd<u16> for U16<O>where
O: ByteOrder,
impl<O> PartialOrd<u32> for U32<O>where
O: ByteOrder,
impl<O> PartialOrd<u64> for U64<O>where
O: ByteOrder,
impl<O> PartialOrd<u128> for U128<O>where
O: ByteOrder,
impl<O> PartialOrd<usize> for Usize<O>where
O: ByteOrder,
impl<Ptr, Q> PartialOrd<Pin<Q>> for Pin<Ptr>
impl<R, W> PartialOrd for Fifo<R, W>
impl<Reference, Output> PartialOrd for Clock<Reference, Output>where
Reference: PartialOrd,
Output: PartialOrd,
impl<S> PartialOrd for Host<S>where
S: PartialOrd,
impl<Storage> PartialOrd for __BindgenBitfieldUnit<Storage>where
Storage: PartialOrd,
impl<T> PartialOrd for Option<T>where
T: PartialOrd,
impl<T> PartialOrd for Poll<T>where
T: PartialOrd,
impl<T> PartialOrd for *const Twhere
T: ?Sized,
Pointer comparison is by address, as produced by the [<*const T>::addr](pointer::addr) method.
impl<T> PartialOrd for *mut Twhere
T: ?Sized,
Pointer comparison is by address, as produced by the <*mut T>::addr method.
impl<T> PartialOrd for [T]where
T: PartialOrd,
Implements comparison of slices lexicographically.
impl<T> PartialOrd for (T₁, T₂, …, Tₙ)where
T: PartialOrd,
This trait is implemented for tuples up to twelve items long.
impl<T> PartialOrd for ArcKey<T>
impl<T> PartialOrd for WeakKey<T>
impl<T> PartialOrd for uref32<T>where
T: PartialOrd,
impl<T> PartialOrd for uref<T>where
T: PartialOrd,
impl<T> PartialOrd for Cell<T>where
T: PartialOrd + Copy,
impl<T> PartialOrd for RefCell<T>where
T: PartialOrd + ?Sized,
impl<T> PartialOrd for PhantomContravariant<T>where
T: ?Sized,
impl<T> PartialOrd for PhantomCovariant<T>where
T: ?Sized,
impl<T> PartialOrd for PhantomData<T>where
T: ?Sized,
impl<T> PartialOrd for PhantomInvariant<T>where
T: ?Sized,
impl<T> PartialOrd for ManuallyDrop<T>where
T: PartialOrd + ?Sized,
impl<T> PartialOrd for NonZero<T>where
T: ZeroablePrimitive + PartialOrd,
impl<T> PartialOrd for Saturating<T>where
T: PartialOrd,
impl<T> PartialOrd for Wrapping<T>where
T: PartialOrd,
impl<T> PartialOrd for NonNull<T>where
T: ?Sized,
impl<T> PartialOrd for CapacityError<T>where
T: PartialOrd,
impl<T> PartialOrd for Unalign<T>where
T: Unaligned + PartialOrd,
impl<T> PartialOrd for Reverse<T>where
T: PartialOrd,
impl<T> PartialOrd for AllowStdIo<T>where
T: PartialOrd,
impl<T> PartialOrd for ClientEnd<T>where
T: PartialOrd,
impl<T> PartialOrd for Fragile<T>where
T: PartialOrd,
impl<T> PartialOrd for SemiSticky<T>where
T: PartialOrd,
impl<T> PartialOrd for ServerEnd<T>where
T: PartialOrd,
impl<T> PartialOrd for SingleOrVec<T>where
T: PartialOrd,
impl<T> PartialOrd for Sticky<T>where
T: PartialOrd,
impl<T> PartialOrd for Timer<T>where
T: PartialOrd,
impl<T, A1, A2> PartialOrd<Vec<T, A2>> for Vec<T, A1>
Implements comparison of vectors, lexicographically.
impl<T, A> PartialOrd for Box<T, A>
impl<T, A> PartialOrd for BTreeSet<T, A>
impl<T, A> PartialOrd for LinkedList<T, A>where
T: PartialOrd,
A: Allocator,
impl<T, A> PartialOrd for VecDeque<T, A>where
T: PartialOrd,
A: Allocator,
impl<T, A> PartialOrd for Rc<T, A>
impl<T, A> PartialOrd for UniqueRc<T, A>
impl<T, A> PartialOrd for Arc<T, A>
impl<T, A> PartialOrd for UniqueArc<T, A>
impl<T, B> PartialOrd for Ref<B, T>
impl<T, E> PartialOrd for Result<T, E>where
T: PartialOrd,
E: PartialOrd,
impl<T, U> PartialOrd for Duration<T, U>where
T: PartialOrd,
U: PartialOrd,
impl<T, U> PartialOrd for Instant<T, U>where
T: PartialOrd,
U: PartialOrd,
impl<T, U> PartialOrd<Exclusive<U>> for Exclusive<T>
impl<T, const CAP: usize> PartialOrd for arrayvec::arrayvec::ArrayVec<T, CAP>where
T: PartialOrd,
impl<T, const N: usize> PartialOrd for [T; N]where
T: PartialOrd,
Implements comparison of arrays lexicographically.
impl<T, const N: usize> PartialOrd for Mask<T, N>
impl<T, const N: usize> PartialOrd for Simd<T, N>
Lexicographic order. For the SIMD elementwise minimum and maximum, use simd_min and simd_max instead.