pub trait Ord: Eq + PartialOrd<Self> {
// 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 + PartialOrd<Self> { ... }
}
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).
It’s easy to accidentally make cmp
and partial_cmp
disagree by
deriving some of the traits and manually implementing others.
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 <
defines a strict total order.
This means that for all a
, b
and c
:
- exactly one of
a < b
,a == b
ora > b
is true; and <
is transitive:a < b
andb < c
impliesa < c
. The same must hold for both==
and>
.
Derivable
This trait can be used with #[derive]
.
When derive
d on structs, it will produce a
lexicographic ordering
based on the top-to-bottom declaration order of the struct’s members.
When derive
d on enums, variants are ordered by their discriminants.
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 sequence 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
and Eq
(which requires PartialEq
).
Then you must define an implementation for cmp
. You may find it useful to use
cmp
on your type’s fields.
Here’s an example where you want to sort people by height only, disregarding id
and name
:
use std::cmp::Ordering;
#[derive(Eq)]
struct Person {
id: u32,
name: String,
height: u32,
}
impl Ord for Person {
fn cmp(&self, other: &Self) -> Ordering {
self.height.cmp(&other.height)
}
}
impl PartialOrd for Person {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
Some(self.cmp(other))
}
}
impl PartialEq for Person {
fn eq(&self, other: &Self) -> bool {
self.height == other.height
}
}
Required Methods§
sourcefn cmp(&self, other: &Self) -> Ordering
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 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere 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 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere 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 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,
Implementors§
impl Ord for BigEndian
impl Ord for LittleEndian
impl Ord for Month
impl Ord for Meaning
impl Ord for SectionId
impl Ord for ColumnType
impl Ord for AttrValueKind
impl Ord for DoctypeIdKind
impl Ord for RawKind
impl Ord for ScriptEscapeKind
impl Ord for html5ever::tokenizer::states::State
impl Ord for ExtensionType
impl Ord for LocaleFallbackPriority
impl Ord for LocaleFallbackSupplement
impl Ord for log::Level
impl Ord for log::LevelFilter
impl Ord for AddressSpace
impl Ord for ArraySize
impl Ord for AtomicFunction
impl Ord for BinaryOperator
impl Ord for naga::BuiltIn
impl Ord for ConservativeDepth
impl Ord for DerivativeAxis
impl Ord for DerivativeControl
impl Ord for ImageClass
impl Ord for ImageDimension
impl Ord for Interpolation
impl Ord for MathFunction
impl Ord for RelationalFunction
impl Ord for Sampling
impl Ord for ScalarKind
impl Ord for ShaderStage
impl Ord for StorageFormat
impl Ord for UnaryOperator
impl Ord for VectorSize
impl Ord for petgraph::Direction
impl Ord for ProfilerCategory
impl Ord for TimerMetadataFrameType
impl Ord for TimerMetadataReflowType
impl Ord for Channels
impl Ord for ColorSpace
impl Ord for Utf8Sequence
impl Ord for ron::value::Number
impl Ord for ron::value::Value
impl Ord for rustix::ioctl::Direction
impl Ord for SocketAddrAny
impl Ord for Void
impl Ord for ParamDir
impl Ord for ParamType
impl Ord for AccessQualifier
impl Ord for AddressingModel
impl Ord for spirv::BuiltIn
impl Ord for CLOp
impl Ord for Capability
impl Ord for Decoration
impl Ord for Dim
impl Ord for ExecutionMode
impl Ord for ExecutionModel
impl Ord for FPRoundingMode
impl Ord for FunctionParameterAttribute
impl Ord for GLOp
impl Ord for GroupOperation
impl Ord for ImageChannelDataType
impl Ord for ImageChannelOrder
impl Ord for ImageFormat
impl Ord for KernelEnqueueFlags
impl Ord for LinkageType
impl Ord for MemoryModel
impl Ord for Op
impl Ord for RayQueryCandidateIntersectionType
impl Ord for RayQueryCommittedIntersectionType
impl Ord for RayQueryIntersection
impl Ord for SamplerAddressingMode
impl Ord for SamplerFilterMode
impl Ord for Scope
impl Ord for SourceLanguage
impl Ord for StorageClass
impl Ord for ViewportUnitUsage
impl Ord for ChildRestyleRequirement
impl Ord for CascadeLevel
impl Ord for DataValidity
impl Ord for Origin
impl Ord for style::stylesheets::rule_parser::State
impl Ord for SortKey
impl Ord for BorderStyle
impl Ord for OutlineStyle
impl Ord for PaintOrder
impl Ord for CaptionSide
impl Ord for DeflateLevel
impl Ord for ucd::Number
impl Ord for ExtendMode
impl Ord for FontHinting
impl Ord for FontLCDFilter
impl Ord for FontRenderMode
impl Ord for ShaderVersion
impl Ord for ShaderModel
impl Ord for SubpixelDirection
impl Ord for SubpixelOffset
impl Ord for DOMErrorName
impl Ord for Ordering
impl Ord for AsciiChar
impl Ord for Infallible
impl Ord for Which
impl Ord for IpAddr
impl Ord for SocketAddr
impl Ord for ErrorKind
impl Ord for bool
impl Ord for char
impl Ord for i8
impl Ord for i16
impl Ord for i32
impl Ord for i64
impl Ord for i128
impl Ord for isize
impl Ord for !
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.
impl Ord for u8
impl Ord for u16
impl Ord for u32
impl Ord for u64
impl Ord for u128
impl Ord for ()
impl Ord for usize
impl Ord for aho_corasick::util::primitives::PatternID
impl Ord for aho_corasick::util::primitives::StateID
impl Ord for Au
impl Ord for GpaDeviceClockModeAmd
impl Ord for GpaPerfBlockAmd
impl Ord for GpaSampleTypeAmd
impl Ord for GpaSessionAmd
impl Ord for GpaSqShaderStageFlags
impl Ord for AccelerationStructureCreateFlagsKHR
impl Ord for AccessFlags2
impl Ord for AccessFlags
impl Ord for AcquireProfilingLockFlagsKHR
impl Ord for AttachmentDescriptionFlags
impl Ord for BufferCreateFlags
impl Ord for BufferUsageFlags
impl Ord for BuildAccelerationStructureFlagsKHR
impl Ord for BuildMicromapFlagsEXT
impl Ord for ColorComponentFlags
impl Ord for CommandBufferResetFlags
impl Ord for CommandBufferUsageFlags
impl Ord for CommandPoolCreateFlags
impl Ord for CommandPoolResetFlags
impl Ord for CompositeAlphaFlagsKHR
impl Ord for ConditionalRenderingFlagsEXT
impl Ord for CullModeFlags
impl Ord for DebugReportFlagsEXT
impl Ord for DebugUtilsMessageSeverityFlagsEXT
impl Ord for DebugUtilsMessageTypeFlagsEXT
impl Ord for DependencyFlags
impl Ord for DescriptorBindingFlags
impl Ord for DescriptorPoolCreateFlags
impl Ord for DescriptorSetLayoutCreateFlags
impl Ord for DeviceAddressBindingFlagsEXT
impl Ord for DeviceDiagnosticsConfigFlagsNV
impl Ord for DeviceGroupPresentModeFlagsKHR
impl Ord for DeviceQueueCreateFlags
impl Ord for DisplayPlaneAlphaFlagsKHR
impl Ord for EventCreateFlags
impl Ord for ExportMetalObjectTypeFlagsEXT
impl Ord for ExternalFenceFeatureFlags
impl Ord for ExternalFenceHandleTypeFlags
impl Ord for ExternalMemoryFeatureFlags
impl Ord for ExternalMemoryFeatureFlagsNV
impl Ord for ExternalMemoryHandleTypeFlags
impl Ord for ExternalMemoryHandleTypeFlagsNV
impl Ord for ExternalSemaphoreFeatureFlags
impl Ord for ExternalSemaphoreHandleTypeFlags
impl Ord for FenceCreateFlags
impl Ord for FenceImportFlags
impl Ord for FormatFeatureFlags2
impl Ord for FormatFeatureFlags
impl Ord for FramebufferCreateFlags
impl Ord for GeometryFlagsKHR
impl Ord for GeometryInstanceFlagsKHR
impl Ord for GraphicsPipelineLibraryFlagsEXT
impl Ord for ImageAspectFlags
impl Ord for ImageCompressionFixedRateFlagsEXT
impl Ord for ImageCompressionFlagsEXT
impl Ord for ImageConstraintsInfoFlagsFUCHSIA
impl Ord for ImageCreateFlags
impl Ord for ImageFormatConstraintsFlagsFUCHSIA
impl Ord for ImageUsageFlags
impl Ord for ImageViewCreateFlags
impl Ord for IndirectCommandsLayoutUsageFlagsNV
impl Ord for IndirectStateFlagsNV
impl Ord for InstanceCreateFlags
impl Ord for MemoryAllocateFlags
impl Ord for MemoryDecompressionMethodFlagsNV
impl Ord for MemoryHeapFlags
impl Ord for ash::vk::bitflags::MemoryPropertyFlags
impl Ord for MicromapCreateFlagsEXT
impl Ord for OpticalFlowExecuteFlagsNV
impl Ord for OpticalFlowGridSizeFlagsNV
impl Ord for OpticalFlowSessionCreateFlagsNV
impl Ord for OpticalFlowUsageFlagsNV
impl Ord for PeerMemoryFeatureFlags
impl Ord for PerformanceCounterDescriptionFlagsKHR
impl Ord for PipelineCacheCreateFlags
impl Ord for PipelineColorBlendStateCreateFlags
impl Ord for PipelineCompilerControlFlagsAMD
impl Ord for PipelineCreateFlags
impl Ord for PipelineCreationFeedbackFlags
impl Ord for PipelineDepthStencilStateCreateFlags
impl Ord for PipelineLayoutCreateFlags
impl Ord for PipelineShaderStageCreateFlags
impl Ord for PipelineStageFlags2
impl Ord for PipelineStageFlags
impl Ord for PresentGravityFlagsEXT
impl Ord for PresentScalingFlagsEXT
impl Ord for PrivateDataSlotCreateFlags
impl Ord for QueryControlFlags
impl Ord for QueryPipelineStatisticFlags
impl Ord for QueryResultFlags
impl Ord for QueueFlags
impl Ord for RenderPassCreateFlags
impl Ord for RenderingFlags
impl Ord for ResolveModeFlags
impl Ord for SampleCountFlags
impl Ord for SamplerCreateFlags
impl Ord for SemaphoreCreateFlags
impl Ord for SemaphoreImportFlags
impl Ord for SemaphoreWaitFlags
impl Ord for ShaderCorePropertiesFlagsAMD
impl Ord for ShaderCreateFlagsEXT
impl Ord for ShaderModuleCreateFlags
impl Ord for ShaderStageFlags
impl Ord for SparseImageFormatFlags
impl Ord for SparseMemoryBindFlags
impl Ord for StencilFaceFlags
impl Ord for SubgroupFeatureFlags
impl Ord for SubmitFlags
impl Ord for SubpassDescriptionFlags
impl Ord for SurfaceCounterFlagsEXT
impl Ord for SurfaceTransformFlagsKHR
impl Ord for SwapchainCreateFlagsKHR
impl Ord for SwapchainImageUsageFlagsANDROID
impl Ord for ToolPurposeFlags
impl Ord for VideoCapabilityFlagsKHR
impl Ord for VideoChromaSubsamplingFlagsKHR
impl Ord for VideoCodecOperationFlagsKHR
impl Ord for VideoCodingControlFlagsKHR
impl Ord for VideoComponentBitDepthFlagsKHR
impl Ord for VideoDecodeCapabilityFlagsKHR
impl Ord for VideoDecodeH264PictureLayoutFlagsKHR
impl Ord for VideoDecodeUsageFlagsKHR
impl Ord for VideoEncodeCapabilityFlagsKHR
impl Ord for VideoEncodeContentFlagsKHR
impl Ord for VideoEncodeFeedbackFlagsKHR
impl Ord for VideoEncodeH264CapabilityFlagsEXT
impl Ord for VideoEncodeH265CapabilityFlagsEXT
impl Ord for VideoEncodeH265CtbSizeFlagsEXT
impl Ord for VideoEncodeH265TransformBlockSizeFlagsEXT
impl Ord for VideoEncodeRateControlModeFlagsKHR
impl Ord for VideoEncodeUsageFlagsKHR
impl Ord for VideoSessionCreateFlagsKHR
impl Ord for AccelerationStructureKHR
impl Ord for AccelerationStructureMotionInfoFlagsNV
impl Ord for AccelerationStructureMotionInstanceFlagsNV
impl Ord for AccelerationStructureNV
impl Ord for AndroidSurfaceCreateFlagsKHR
impl Ord for Buffer
impl Ord for BufferCollectionFUCHSIA
impl Ord for BufferView
impl Ord for BufferViewCreateFlags
impl Ord for CommandBuffer
impl Ord for CommandPool
impl Ord for CommandPoolTrimFlags
impl Ord for CuFunctionNVX
impl Ord for CuModuleNVX
impl Ord for DebugReportCallbackEXT
impl Ord for DebugUtilsMessengerCallbackDataFlagsEXT
impl Ord for DebugUtilsMessengerCreateFlagsEXT
impl Ord for DebugUtilsMessengerEXT
impl Ord for DeferredOperationKHR
impl Ord for DescriptorPool
impl Ord for DescriptorPoolResetFlags
impl Ord for DescriptorSet
impl Ord for DescriptorSetLayout
impl Ord for DescriptorUpdateTemplate
impl Ord for DescriptorUpdateTemplateCreateFlags
impl Ord for Device
impl Ord for DeviceCreateFlags
impl Ord for DeviceMemory
impl Ord for DeviceMemoryReportFlagsEXT
impl Ord for DirectDriverLoadingFlagsLUNARG
impl Ord for DirectFBSurfaceCreateFlagsEXT
impl Ord for DisplayKHR
impl Ord for DisplayModeCreateFlagsKHR
impl Ord for DisplayModeKHR
impl Ord for DisplaySurfaceCreateFlagsKHR
impl Ord for Event
impl Ord for Fence
impl Ord for Framebuffer
impl Ord for HeadlessSurfaceCreateFlagsEXT
impl Ord for IOSSurfaceCreateFlagsMVK
impl Ord for Image
impl Ord for ImagePipeSurfaceCreateFlagsFUCHSIA
impl Ord for ImageView
impl Ord for IndirectCommandsLayoutNV
impl Ord for Instance
impl Ord for MacOSSurfaceCreateFlagsMVK
impl Ord for MemoryMapFlags
impl Ord for MemoryUnmapFlagsKHR
impl Ord for MetalSurfaceCreateFlagsEXT
impl Ord for MicromapEXT
impl Ord for OpticalFlowSessionNV
impl Ord for PerformanceConfigurationINTEL
impl Ord for PhysicalDevice
impl Ord for Pipeline
impl Ord for PipelineCache
impl Ord for PipelineCoverageModulationStateCreateFlagsNV
impl Ord for PipelineCoverageReductionStateCreateFlagsNV
impl Ord for PipelineCoverageToColorStateCreateFlagsNV
impl Ord for PipelineDiscardRectangleStateCreateFlagsEXT
impl Ord for PipelineDynamicStateCreateFlags
impl Ord for PipelineInputAssemblyStateCreateFlags
impl Ord for PipelineLayout
impl Ord for PipelineMultisampleStateCreateFlags
impl Ord for PipelineRasterizationConservativeStateCreateFlagsEXT
impl Ord for PipelineRasterizationDepthClipStateCreateFlagsEXT
impl Ord for PipelineRasterizationStateCreateFlags
impl Ord for PipelineRasterizationStateStreamCreateFlagsEXT
impl Ord for PipelineTessellationStateCreateFlags
impl Ord for PipelineVertexInputStateCreateFlags
impl Ord for PipelineViewportStateCreateFlags
impl Ord for PipelineViewportSwizzleStateCreateFlagsNV
impl Ord for PrivateDataSlot
impl Ord for QueryPool
impl Ord for QueryPoolCreateFlags
impl Ord for Queue
impl Ord for RenderPass
impl Ord for Sampler
impl Ord for SamplerYcbcrConversion
impl Ord for ScreenSurfaceCreateFlagsQNX
impl Ord for Semaphore
impl Ord for ShaderEXT
impl Ord for ShaderModule
impl Ord for StreamDescriptorSurfaceCreateFlagsGGP
impl Ord for SurfaceKHR
impl Ord for SwapchainKHR
impl Ord for ValidationCacheCreateFlagsEXT
impl Ord for ValidationCacheEXT
impl Ord for ViSurfaceCreateFlagsNN
impl Ord for VideoBeginCodingFlagsKHR
impl Ord for VideoDecodeFlagsKHR
impl Ord for VideoEncodeFlagsKHR
impl Ord for VideoEncodeRateControlFlagsKHR
impl Ord for VideoEndCodingFlagsKHR
impl Ord for VideoSessionKHR
impl Ord for VideoSessionParametersCreateFlagsKHR
impl Ord for VideoSessionParametersKHR
impl Ord for WaylandSurfaceCreateFlagsKHR
impl Ord for Win32SurfaceCreateFlagsKHR
impl Ord for XcbSurfaceCreateFlagsKHR
impl Ord for XlibSurfaceCreateFlagsKHR
impl Ord for AccelerationStructureBuildTypeKHR
impl Ord for AccelerationStructureCompatibilityKHR
impl Ord for AccelerationStructureMemoryRequirementsTypeNV
impl Ord for AccelerationStructureMotionInstanceTypeNV
impl Ord for AccelerationStructureTypeKHR
impl Ord for AttachmentLoadOp
impl Ord for AttachmentStoreOp
impl Ord for BlendFactor
impl Ord for BlendOp
impl Ord for BlendOverlapEXT
impl Ord for BorderColor
impl Ord for BuildAccelerationStructureModeKHR
impl Ord for BuildMicromapModeEXT
impl Ord for ChromaLocation
impl Ord for CoarseSampleOrderTypeNV
impl Ord for ColorSpaceKHR
impl Ord for CommandBufferLevel
impl Ord for CompareOp
impl Ord for ComponentSwizzle
impl Ord for ComponentTypeNV
impl Ord for ConservativeRasterizationModeEXT
impl Ord for CopyAccelerationStructureModeKHR
impl Ord for CopyMicromapModeEXT
impl Ord for CoverageModulationModeNV
impl Ord for CoverageReductionModeNV
impl Ord for DebugReportObjectTypeEXT
impl Ord for DescriptorType
impl Ord for DescriptorUpdateTemplateType
impl Ord for DeviceAddressBindingTypeEXT
impl Ord for DeviceEventTypeEXT
impl Ord for DeviceFaultAddressTypeEXT
impl Ord for DeviceFaultVendorBinaryHeaderVersionEXT
impl Ord for DeviceMemoryReportEventTypeEXT
impl Ord for DirectDriverLoadingModeLUNARG
impl Ord for DiscardRectangleModeEXT
impl Ord for DisplacementMicromapFormatNV
impl Ord for DisplayEventTypeEXT
impl Ord for DisplayPowerStateEXT
impl Ord for DriverId
impl Ord for DynamicState
impl Ord for Filter
impl Ord for Format
impl Ord for FragmentShadingRateCombinerOpKHR
impl Ord for FragmentShadingRateNV
impl Ord for FragmentShadingRateTypeNV
impl Ord for FrontFace
impl Ord for FullScreenExclusiveEXT
impl Ord for GeometryTypeKHR
impl Ord for ImageLayout
impl Ord for ImageTiling
impl Ord for ImageType
impl Ord for ImageViewType
impl Ord for IndexType
impl Ord for IndirectCommandsTokenTypeNV
impl Ord for InternalAllocationType
impl Ord for LineRasterizationModeEXT
impl Ord for LogicOp
impl Ord for MemoryOverallocationBehaviorAMD
impl Ord for MicromapTypeEXT
impl Ord for ObjectType
impl Ord for OpacityMicromapFormatEXT
impl Ord for OpacityMicromapSpecialIndexEXT
impl Ord for OpticalFlowPerformanceLevelNV
impl Ord for OpticalFlowSessionBindingPointNV
impl Ord for PerformanceConfigurationTypeINTEL
impl Ord for PerformanceCounterScopeKHR
impl Ord for PerformanceCounterStorageKHR
impl Ord for PerformanceCounterUnitKHR
impl Ord for PerformanceOverrideTypeINTEL
impl Ord for PerformanceParameterTypeINTEL
impl Ord for PerformanceValueTypeINTEL
impl Ord for PhysicalDeviceType
impl Ord for PipelineBindPoint
impl Ord for PipelineCacheHeaderVersion
impl Ord for PipelineExecutableStatisticFormatKHR
impl Ord for PipelineRobustnessBufferBehaviorEXT
impl Ord for PipelineRobustnessImageBehaviorEXT
impl Ord for PointClippingBehavior
impl Ord for PolygonMode
impl Ord for PresentModeKHR
impl Ord for PrimitiveTopology
impl Ord for ProvokingVertexModeEXT
impl Ord for QueryPoolSamplingModeINTEL
impl Ord for QueryResultStatusKHR
impl Ord for QueryType
impl Ord for QueueGlobalPriorityKHR
impl Ord for RasterizationOrderAMD
impl Ord for RayTracingInvocationReorderModeNV
impl Ord for RayTracingShaderGroupTypeKHR
impl Ord for ash::vk::enums::Result
impl Ord for SamplerAddressMode
impl Ord for SamplerMipmapMode
impl Ord for SamplerReductionMode
impl Ord for SamplerYcbcrModelConversion
impl Ord for SamplerYcbcrRange
impl Ord for ScopeNV
impl Ord for SemaphoreType
impl Ord for ShaderCodeTypeEXT
impl Ord for ShaderFloatControlsIndependence
impl Ord for ShaderGroupShaderKHR
impl Ord for ShaderInfoTypeAMD
impl Ord for ShadingRatePaletteEntryNV
impl Ord for SharingMode
impl Ord for StencilOp
impl Ord for StructureType
impl Ord for SubpassContents
impl Ord for SubpassMergeStatusEXT
impl Ord for SystemAllocationScope
impl Ord for TessellationDomainOrigin
impl Ord for TimeDomainEXT
impl Ord for ValidationCacheHeaderVersionEXT
impl Ord for ValidationCheckEXT
impl Ord for ValidationFeatureDisableEXT
impl Ord for ValidationFeatureEnableEXT
impl Ord for VendorId
impl Ord for VertexInputRate
impl Ord for VideoEncodeH264RateControlStructureEXT
impl Ord for VideoEncodeH265RateControlStructureEXT
impl Ord for VideoEncodeTuningModeKHR
impl Ord for ViewportCoordinateSwizzleNV
impl Ord for Packed24_8
impl Ord for bytes::bytes::Bytes
impl Ord for BytesMut
impl Ord for WebGLContextId
impl Ord for WebGLSLVersion
impl Ord for Months
impl Ord for NaiveDate
impl Ord for NaiveDateDaysIterator
impl Ord for NaiveDateWeeksIterator
impl Ord for NaiveDateTime
impl Ord for IsoWeek
impl Ord for Days
impl Ord for NaiveTime
impl Ord for TimeDelta
impl Ord for ConstCStr
impl Ord for SourcePosition
impl Ord for UnknownUnit
impl Ord for Text
impl Ord for FixedBitSet
impl Ord for ByteIndex
impl Ord for gfx_traits::Epoch
impl Ord for Register
impl Ord for DwAccess
impl Ord for DwAddr
impl Ord for DwAt
impl Ord for DwAte
impl Ord for DwCc
impl Ord for DwCfa
impl Ord for DwChildren
impl Ord for DwDefaulted
impl Ord for DwDs
impl Ord for DwDsc
impl Ord for DwEhPe
impl Ord for DwEnd
impl Ord for DwForm
impl Ord for DwId
impl Ord for DwIdx
impl Ord for DwInl
impl Ord for DwLang
impl Ord for DwLle
impl Ord for DwLnct
impl Ord for DwLne
impl Ord for DwLns
impl Ord for DwMacro
impl Ord for DwOp
impl Ord for DwOrd
impl Ord for DwRle
impl Ord for DwSect
impl Ord for DwSectV2
impl Ord for DwTag
impl Ord for DwUt
impl Ord for DwVirtuality
impl Ord for DwVis
impl Ord for ArangeEntry
impl Ord for UsageFlags
impl Ord for AllocationFlags
impl Ord for gpu_alloc_types::types::MemoryPropertyFlags
impl Ord for AccessControlMaxAge
impl Ord for Age
impl Ord for headers::common::date::Date
impl Ord for Expires
impl Ord for IfModifiedSince
impl Ord for IfUnmodifiedSince
impl Ord for LastModified
impl Ord for Server
impl Ord for UserAgent
impl Ord for HeaderValue
impl Ord for StatusCode
impl Ord for Version
impl Ord for HttpDate
impl Ord for ReasonPhrase
impl Ord for Other
impl Ord for icu_locid::extensions::other::subtag::Subtag
impl Ord for icu_locid::extensions::private::other::Subtag
impl Ord for Private
impl Ord for Fields
impl Ord for icu_locid::extensions::transform::key::Key
impl Ord for icu_locid::extensions::transform::value::Value
impl Ord for icu_locid::extensions::unicode::attribute::Attribute
impl Ord for Attributes
impl Ord for icu_locid::extensions::unicode::key::Key
impl Ord for Keywords
impl Ord for Unicode
impl Ord for icu_locid::extensions::unicode::value::Value
impl Ord for Language
impl Ord for Region
impl Ord for Script
impl Ord for Variant
impl Ord for Variants
impl Ord for DataKey
impl Ord for DataKeyHash
impl Ord for DataKeyMetadata
impl Ord for DataKeyPath
impl Ord for DataRequestMetadata
impl Ord for Modifiers
impl Ord for markup5ever::interface::Attribute
impl Ord for QualName
impl Ord for LocalNameStaticSet
impl Ord for NamespaceStaticSet
impl Ord for PrefixStaticSet
impl Ord for Mime
impl Ord for Interest
impl Ord for Token
impl Ord for BlobId
impl Ord for BlobIndex
impl Ord for BroadcastChannelRouterId
impl Ord for BroadcastChannelRouterIndex
impl Ord for BrowsingContextId
impl Ord for BrowsingContextIndex
impl Ord for HistoryStateId
impl Ord for HistoryStateIndex
impl Ord for MessagePortId
impl Ord for MessagePortIndex
impl Ord for MessagePortRouterId
impl Ord for MessagePortRouterIndex
impl Ord for PipelineId
impl Ord for PipelineIndex
impl Ord for PipelineNamespaceId
impl Ord for ServiceWorkerId
impl Ord for ServiceWorkerIndex
impl Ord for ServiceWorkerRegistrationId
impl Ord for ServiceWorkerRegistrationIndex
impl Ord for TopLevelBrowsingContextId
impl Ord for naga::proc::layouter::Alignment
impl Ord for EarlyDepthTest
impl Ord for ResourceBinding
impl Ord for StorageAccess
impl Ord for Quality
impl Ord for petgraph::visit::dfsvisit::Time
impl Ord for Transformations
impl Ord for TimerMetadata
impl Ord for LazyStateID
impl Ord for Unit
impl Ord for NonMaxUsize
impl Ord for regex_automata::util::primitives::PatternID
impl Ord for SmallIndex
impl Ord for regex_automata::util::primitives::StateID
impl Ord for Position
impl Ord for Span
impl Ord for Literal
impl Ord for ClassBytesRange
impl Ord for ClassUnicodeRange
impl Ord for Utf8Range
impl Ord for Extensions
impl Ord for Float
Ordering comparison
In order to be able to use Float
as a mapping key, NaN floating values
wrapped in Float
are equal to each other and are less then any other
floating value. It is not the case for underlying f64
values itself.
See the PartialEq
implementation.
impl Ord for Map
impl Ord for SocketAddrUnix
impl Ord for Opcode
impl Ord for SockaddrXdpFlags
impl Ord for SocketAddrXdp
impl Ord for Certificate
impl Ord for GamepadIndex
impl Ord for ByteBuf
impl Ord for serde_bytes::bytes::Bytes
impl Ord for AtomStaticSet
impl Ord for Tick
impl Ord for InputPort
impl Ord for NodeId
impl Ord for OutputPort
impl Ord for ServoUrl
impl Ord for FPFastMathMode
impl Ord for FragmentShadingRate
impl Ord for FunctionControl
impl Ord for ImageOperands
impl Ord for KernelProfilingInfo
impl Ord for LoopControl
impl Ord for MemoryAccess
impl Ord for MemorySemantics
impl Ord for RayFlags
impl Ord for SelectionControl
impl Ord for EmptyStaticAtomSet
impl Ord for CascadePriority
impl Ord for ShadowCascadeOrder
impl Ord for KeyframePercentage
impl Ord for LayerOrder
impl Ord for ContainerConditionId
impl Ord for LayerId
impl Ord for ContextAttributeFlags
impl Ord for time::date::Date
impl Ord for time::duration::Duration
impl Ord for time::duration::Duration
impl Ord for time::instant::Instant
impl Ord for OffsetDateTime
impl Ord for PrimitiveDateTime
impl Ord for SteadyTime
impl Ord for Timespec
impl Ord for Tm
impl Ord for time::time::Time
impl Ord for UtcOffset
impl Ord for Ready
impl Ord for tokio::time::instant::Instant
impl Ord for AnyDelimiterCodec
impl Ord for BytesCodec
impl Ord for LinesCodec
impl Ord for tracing_core::metadata::Level
impl Ord for tracing_core::metadata::LevelFilter
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 Ord for unicode_bidi::level::Level
impl Ord for Url
URLs compare like their serialization.
impl Ord for Braced
impl Ord for Hyphenated
impl Ord for Simple
impl Ord for Urn
impl Ord for Uuid
impl Ord for TileId
impl Ord for CaptureBits
impl Ord for ClearCache
impl Ord for ShaderPrecacheFlags
impl Ord for ColorU
impl Ord for PremultipliedColorF
impl Ord for PrimitiveFlags
impl Ord for StackingContextFlags
impl Ord for FontInstanceFlags
impl Ord for FontInstanceKey
impl Ord for FontInstanceOptions
impl Ord for FontInstancePlatformOptions
impl Ord for FontKey
impl Ord for FontSize
impl Ord for FontVariation
impl Ord for GlyphOptions
impl Ord for NativeFontHandle
impl Ord for SyntheticItalics
impl Ord for ImageDescriptorFlags
impl Ord for DebugFlags
impl Ord for webrender_api::Epoch
impl Ord for IdNamespace
impl Ord for RenderReasons
impl Ord for DevicePixel
impl Ord for FramebufferPixel
impl Ord for LayoutPixel
impl Ord for PicturePixel
impl Ord for RasterPixel
impl Ord for Tiles
impl Ord for WorldPixel
impl Ord for ShaderFeatureFlags
impl Ord for DownlevelCapabilities
impl Ord for DownlevelFlags
impl Ord for DownlevelLimits
impl Ord for PresentationTimestamp
impl Ord for BaseFontInstance
impl Ord for FontInstance
impl Ord for FontTransform
impl Ord for GlyphKey
impl Ord for CharULE
impl Ord for UnvalidatedChar
impl Ord for UnvalidatedStr
impl Ord for Index16
impl Ord for Index32
impl Ord for UTF8Bytes
impl Ord for JsTimerHandle
impl Ord for OneshotTimer
impl Ord for OneshotTimerHandle
impl Ord for WebGPUContextId
impl Ord for DOMString
impl Ord for USVString
impl Ord for script::dom::bindings::import::base::ptr::Alignment
impl Ord for CString
impl Ord for String
impl Ord for TypeId
impl Ord for CpuidResult
impl Ord for CStr
impl Ord for Error
impl Ord for PhantomPinned
impl Ord for Ipv4Addr
impl Ord for Ipv6Addr
impl Ord for SocketAddrV4
impl Ord for SocketAddrV6
impl Ord for NonZeroI8
impl Ord for NonZeroI16
impl Ord for NonZeroI32
impl Ord for NonZeroI64
impl Ord for NonZeroI128
impl Ord for NonZeroIsize
impl Ord for NonZeroU8
impl Ord for NonZeroU16
impl Ord for NonZeroU32
impl Ord for NonZeroU64
impl Ord for NonZeroU128
impl Ord for NonZeroUsize
impl Ord for core::time::Duration
impl Ord for OsStr
impl Ord for OsString
impl Ord for Components<'_>
impl Ord for Path
impl Ord for PathBuf
impl Ord for PrefixComponent<'_>
impl Ord for std::time::Instant
impl Ord for SystemTime
impl<'a> Ord for FlexZeroVec<'a>
impl<'a> Ord for Component<'a>
impl<'a> Ord for Prefix<'a>
impl<'a> Ord for CowRcStr<'a>
impl<'a> Ord for Codepoint<'a>
impl<'a> Ord for Metadata<'a>
impl<'a> Ord for MetadataBuilder<'a>
impl<'a> Ord for Name<'a>
impl<'a> Ord for Location<'a>
impl<'a, T> Ord for ZeroVec<'a, T>where T: AsULE + Ord,
impl<'a, T, F> Ord for VarZeroVec<'a, T, F>where T: VarULE + Ord + ?Sized, F: VarZeroVecFormat,
impl<'b, T> Ord for Ptr<'b, T>
impl<'s, T> Ord for SliceVec<'s, T>where T: Ord,
impl<A> Ord for TinyVec<A>where A: Array, <A as Array>::Item: Ord,
impl<A> Ord for &Awhere A: Ord + ?Sized,
impl<A> Ord for &mut Awhere A: Ord + ?Sized,
impl<A> Ord for SmallVec<A>where A: Array, <A as Array>::Item: Ord,
impl<A> Ord for tinyvec::arrayvec::ArrayVec<A>where A: Array, <A as Array>::Item: Ord,
impl<A, B> Ord for Tuple2ULE<A, B>where A: Ord + ULE, B: Ord + ULE,
impl<A, B, C> Ord for Tuple3ULE<A, B, C>where A: Ord + ULE, B: Ord + ULE, C: Ord + ULE,
impl<A, B, C, D> Ord for Tuple4ULE<A, B, C, D>where A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE,
impl<A, B, C, D, E> Ord for Tuple5ULE<A, B, C, D, E>where A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE, E: Ord + ULE,
impl<A, B, C, D, E, F> Ord for Tuple6ULE<A, B, C, D, E, F>where A: Ord + ULE, B: Ord + ULE, C: Ord + ULE, D: Ord + ULE, E: Ord + ULE, F: Ord + ULE,
impl<B> Ord for Cow<'_, B>where B: Ord + ToOwned + ?Sized,
impl<B> Ord for BitSet<B>where B: BitBlock,
impl<B> Ord for BitVec<B>where B: BitBlock,
impl<Dyn> Ord for DynMetadata<Dyn>where Dyn: ?Sized,
impl<E> Ord for I16Bytes<E>where E: Ord + Endian,
impl<E> Ord for I32Bytes<E>where E: Ord + Endian,
impl<E> Ord for I64Bytes<E>where E: Ord + Endian,
impl<E> Ord for U16Bytes<E>where E: Ord + Endian,
impl<E> Ord for U32Bytes<E>where E: Ord + Endian,
impl<E> Ord for U64Bytes<E>where E: Ord + Endian,
impl<F> Ord for Fwhere F: FnPtr,
impl<F, A> Ord for Tendril<F, A>where F: SliceFormat, <F as SliceFormat>::Slice: Ord, A: Atomicity,
impl<Ix> Ord for EdgeIndex<Ix>where Ix: Ord,
impl<Ix> Ord for NodeIndex<Ix>where Ix: Ord,
impl<K, V> Ord for indexmap::map::slice::Slice<K, V>where K: Ord, V: Ord,
impl<K, V, A> Ord for BTreeMap<K, V, A>where K: Ord, V: Ord, A: Allocator + Clone,
impl<K, V, S> Ord for LiteMap<K, V, S>where K: Ord + ?Sized, V: Ord + ?Sized, S: Ord,
impl<Kind> Ord for PortIndex<Kind>where Kind: Ord + PortKind, <Kind as PortKind>::ParamId: Ord, <Kind as PortKind>::Listener: Ord,
impl<Kind> Ord for PortId<Kind>where Kind: Ord + PortKind,
impl<L, R> Ord for Either<L, R>where L: Ord, R: Ord,
impl<O, T> Ord for OwningRef<O, T>where T: Ord + ?Sized,
impl<O, T> Ord for OwningRefMut<O, T>where T: Ord + ?Sized,
impl<P> Ord for Pin<P>where P: Deref, <P as Deref>::Target: Ord,
impl<S> Ord for Host<S>where S: Ord,
impl<Static> Ord for Atom<Static>where Static: StaticAtomSet,
impl<Storage> Ord for ash::vk::native::__BindgenBitfieldUnit<Storage>where Storage: Ord,
impl<Storage> Ord for linux_raw_sys::general::__BindgenBitfieldUnit<Storage>where Storage: Ord,
impl<Storage> Ord for linux_raw_sys::net::__BindgenBitfieldUnit<Storage>where Storage: Ord,
impl<Storage> Ord for mozangle::shaders::ffi::__BindgenBitfieldUnit<Storage>where Storage: Ord,
impl<Storage> Ord for script::dom::bindings::import::module::jsapi::__BindgenBitfieldUnit<Storage>where Storage: Ord,
impl<T> Ord for UnitSectionOffset<T>where T: Ord,
impl<T> Ord for Option<T>where T: Ord,
impl<T> Ord for Poll<T>where T: Ord,
impl<T> Ord for *const Twhere T: ?Sized,
impl<T> Ord for *mut Twhere T: ?Sized,
impl<T> Ord for [T]where T: Ord,
Implements comparison of vectors lexicographically.
impl<T> Ord for (T₁, T₂, …, Tₙ)where T: Ord + ?Sized,
This trait is implemented for tuples up to twelve items long.
impl<T> Ord for CapacityError<T>where T: Ord,
impl<T> Ord for AtomicRefCell<T>where T: Ord + ?Sized,
impl<T> Ord for AllowStdIo<T>where T: Ord,
impl<T> Ord for DebugInfoOffset<T>where T: Ord,
impl<T> Ord for DebugTypesOffset<T>where T: Ord,
impl<T> Ord for UnitOffset<T>where T: Ord,
impl<T> Ord for indexmap::set::slice::Slice<T>where T: Ord,
impl<T> Ord for Handle<T>
impl<T> Ord for servo_arc::Arc<T>where T: Ord + ?Sized,
impl<T> Ord for ThinVec<T>where T: Ord,
impl<T> Ord for Ascii<T>where T: AsRef<str>,
impl<T> Ord for UniCase<T>where T: AsRef<str>,
impl<T> Ord for Id<T>
impl<T> Ord for Unalign<T>where T: Unaligned + Ord,
impl<T> Ord for ZeroSlice<T>where T: AsULE + Ord,
impl<T> Ord for RefCell<T>where T: Ord + ?Sized,
impl<T> Ord for NonNull<T>where T: ?Sized,
impl<T> Ord for Cell<T>where T: Ord + Copy,
impl<T> Ord for PhantomData<T>where T: ?Sized,
impl<T> Ord for ManuallyDrop<T>where T: Ord + ?Sized,
impl<T> Ord for Saturating<T>where T: Ord,
impl<T> Ord for Wrapping<T>where T: Ord,
impl<T> Ord for Reverse<T>where T: Ord,
impl<T, A> Ord for allocator_api2::stable::boxed::Box<T, A>where T: Ord + ?Sized, A: Allocator,
impl<T, A> Ord for allocator_api2::stable::vec::Vec<T, A>where T: Ord, A: Allocator,
Implements ordering of vectors, lexicographically.
impl<T, A> Ord for Rc<T, A>where T: Ord + ?Sized, A: Allocator,
impl<T, A> Ord for alloc::boxed::Box<T, A>where T: Ord + ?Sized, A: Allocator,
impl<T, A> Ord for BTreeSet<T, A>where T: Ord, A: Allocator + Clone,
impl<T, A> Ord for LinkedList<T, A>where T: Ord, A: Allocator,
impl<T, A> Ord for VecDeque<T, A>where T: Ord, A: Allocator,
impl<T, A> Ord for alloc::sync::Arc<T, A>where T: Ord + ?Sized, A: Allocator,
impl<T, A> Ord for alloc::vec::Vec<T, A>where T: Ord, A: Allocator,
Implements ordering of vectors, lexicographically.
impl<T, B> Ord for Ref<B, [T]>where B: ByteSlice, T: FromBytes + Ord,
impl<T, B> Ord for Ref<B, T>where B: ByteSlice, T: FromBytes + Ord,
impl<T, E> Ord for core::result::Result<T, E>where T: Ord, E: Ord,
impl<T, F> Ord for VarZeroSlice<T, F>where T: VarULE + Ord + ?Sized, F: VarZeroVecFormat,
impl<T, N> Ord for GenericArray<T, N>where T: Ord, N: ArrayLength<T>,
impl<T, Src, Dst> Ord for Scale<T, Src, Dst>where T: Ord,
impl<T, U> Ord for Length<T, U>where T: Ord,
impl<T, const CAP: usize> Ord for arrayvec::arrayvec::ArrayVec<T, CAP>where T: Ord,
impl<T, const N: usize> Ord for [T; N]where T: Ord,
Implements comparison of arrays lexicographically.