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 + PartialOrd { ... }
}
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 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>
.
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 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 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
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§
1.0.0 · 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,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd,
Object Safety§
Implementors§
impl Ord for BigEndian
impl Ord for LittleEndian
impl Ord for Keviyah
impl Ord for StartOfYear
impl Ord for YearType
impl Ord for chrono::month::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 AnyCalendarKind
impl Ord for ICU4XCollatorAlternateHandling
impl Ord for ICU4XCollatorBackwardSecondLevel
impl Ord for ICU4XCollatorCaseFirst
impl Ord for ICU4XCollatorCaseLevel
impl Ord for ICU4XCollatorMaxVariable
impl Ord for ICU4XCollatorNumeric
impl Ord for ICU4XCollatorStrength
impl Ord for AlternateHandling
impl Ord for CaseFirst
impl Ord for Strength
impl Ord for FieldLength
impl Ord for FieldNumericOverrides
impl Ord for Day
impl Ord for DayPeriod
impl Ord for FieldSymbol
impl Ord for Hour
impl Ord for icu_datetime::fields::symbols::Month
impl Ord for Second
impl Ord for TimeZone
impl Ord for Week
impl Ord for Weekday
impl Ord for Year
impl Ord for ExtensionType
impl Ord for PluralCategory
impl Ord for icu_properties::props::GeneralCategory
impl Ord for CheckedBidiPairedBracketType
impl Ord for LocaleFallbackPriority
impl Ord for LocaleFallbackSupplement
impl Ord for khronos_egl::Version
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 CollectiveOperation
impl Ord for ConservativeDepth
impl Ord for DerivativeAxis
impl Ord for DerivativeControl
impl Ord for GatherMode
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 SubgroupOperation
impl Ord for UnaryOperator
impl Ord for VectorSize
impl Ord for ExpressionKind
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 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 CooperativeMatrixLayout
impl Ord for CooperativeMatrixUse
impl Ord for Decoration
impl Ord for Dim
impl Ord for ExecutionMode
impl Ord for ExecutionModel
impl Ord for FPDenormMode
impl Ord for FPOperationMode
impl Ord for FPRoundingMode
impl Ord for FunctionParameterAttribute
impl Ord for GLOp
impl Ord for GroupOperation
impl Ord for HostAccessQualifier
impl Ord for ImageChannelDataType
impl Ord for ImageChannelOrder
impl Ord for ImageFormat
impl Ord for InitializationModeQualifier
impl Ord for KernelEnqueueFlags
impl Ord for LinkageType
impl Ord for LoadCacheControl
impl Ord for MemoryModel
impl Ord for Op
impl Ord for OverflowModes
impl Ord for PackedVectorFormat
impl Ord for QuantizationModes
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 StoreCacheControl
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 EmojiStatus
impl Ord for unicode_properties::tables::general_category::GeneralCategory
impl Ord for GeneralCategoryGroup
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 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 aead::Error
impl Ord for aho_corasick::util::primitives::PatternID
impl Ord for aho_corasick::util::primitives::StateID
impl Ord for Au
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 BufferUsageFlags2KHR
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 FrameBoundaryFlagsEXT
impl Ord for FramebufferCreateFlags
impl Ord for GeometryFlagsKHR
impl Ord for GeometryInstanceFlagsKHR
impl Ord for GraphicsPipelineLibraryFlagsEXT
impl Ord for HostImageCopyFlagsEXT
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 MemoryMapFlags
impl Ord for ash::vk::bitflags::MemoryPropertyFlags
impl Ord for MemoryUnmapFlagsKHR
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 PhysicalDeviceSchedulingControlsFlagsARM
impl Ord for PipelineCacheCreateFlags
impl Ord for PipelineColorBlendStateCreateFlags
impl Ord for PipelineCompilerControlFlagsAMD
impl Ord for PipelineCreateFlags2KHR
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 VideoEncodeFlagsKHR
impl Ord for VideoEncodeH264CapabilityFlagsKHR
impl Ord for VideoEncodeH264RateControlFlagsKHR
impl Ord for VideoEncodeH264StdFlagsKHR
impl Ord for VideoEncodeH265CapabilityFlagsKHR
impl Ord for VideoEncodeH265CtbSizeFlagsKHR
impl Ord for VideoEncodeH265RateControlFlagsKHR
impl Ord for VideoEncodeH265StdFlagsKHR
impl Ord for VideoEncodeH265TransformBlockSizeFlagsKHR
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 CudaFunctionNV
impl Ord for CudaModuleNV
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 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 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 BlockMatchWindowCompareModeQCOM
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 ComponentTypeKHR
impl Ord for ConservativeRasterizationModeEXT
impl Ord for CopyAccelerationStructureModeKHR
impl Ord for CopyMicromapModeEXT
impl Ord for CoverageModulationModeNV
impl Ord for CoverageReductionModeNV
impl Ord for CubicFilterWeightsQCOM
impl Ord for DebugReportObjectTypeEXT
impl Ord for DepthBiasRepresentationEXT
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 LatencyMarkerNV
impl Ord for LayerSettingTypeEXT
impl Ord for LayeredDriverUnderlyingApiMSFT
impl Ord for LineRasterizationModeKHR
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 OutOfBandQueueTypeNV
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 ScopeKHR
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 TimeDomainKHR
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 VideoEncodeTuningModeKHR
impl Ord for ViewportCoordinateSwizzleNV
impl Ord for Packed24_8
impl Ord for CrossProcessInstant
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 base::Epoch
impl Ord for bytes::bytes::Bytes
impl Ord for BytesMut
impl Ord for calendrical_calculations::chinese_based::Chinese
impl Ord for calendrical_calculations::chinese_based::Dangi
impl Ord for BookHebrew
impl Ord for RataDie
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 SourcePosition
impl Ord for UnknownUnit
impl Ord for Text
impl Ord for FixedBitSet
impl Ord for ByteIndex
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 Range
impl Ord for glow::native::NativeBuffer
impl Ord for glow::native::NativeBuffer
impl Ord for glow::native::NativeFence
impl Ord for glow::native::NativeFence
impl Ord for glow::native::NativeFramebuffer
impl Ord for glow::native::NativeFramebuffer
impl Ord for glow::native::NativeProgram
impl Ord for glow::native::NativeProgram
impl Ord for glow::native::NativeQuery
impl Ord for glow::native::NativeQuery
impl Ord for glow::native::NativeRenderbuffer
impl Ord for glow::native::NativeRenderbuffer
impl Ord for glow::native::NativeSampler
impl Ord for glow::native::NativeSampler
impl Ord for glow::native::NativeShader
impl Ord for glow::native::NativeShader
impl Ord for glow::native::NativeTexture
impl Ord for glow::native::NativeTexture
impl Ord for glow::native::NativeTransformFeedback
impl Ord for glow::native::NativeTransformFeedback
impl Ord for glow::native::NativeUniformLocation
impl Ord for glow::native::NativeUniformLocation
impl Ord for glow::native::NativeVertexArray
impl Ord for glow::native::NativeVertexArray
impl Ord for glow::version::Version
impl Ord for glow::version::Version
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 http::version::Version
impl Ord for HttpDate
impl Ord for ReasonPhrase
impl Ord for icu_calendar::chinese::Chinese
impl Ord for ChineseDateInner
impl Ord for Coptic
impl Ord for CopticDateInner
impl Ord for icu_calendar::dangi::Dangi
impl Ord for DangiDateInner
impl Ord for Ethiopian
impl Ord for EthiopianDateInner
impl Ord for GregorianDateInner
impl Ord for Hebrew
impl Ord for HebrewDateInner
impl Ord for Indian
impl Ord for IndianDateInner
impl Ord for IslamicCivil
impl Ord for IslamicCivilDateInner
impl Ord for IslamicDateInner
impl Ord for IslamicTabular
impl Ord for IslamicTabularDateInner
impl Ord for IslamicUmmAlQuraDateInner
impl Ord for Iso
impl Ord for IsoDateInner
impl Ord for JapaneseDateInner
impl Ord for Julian
impl Ord for Persian
impl Ord for PersianDateInner
impl Ord for PackedChineseBasedYearInfo
impl Ord for PackedIslamicYearInfo
impl Ord for EraStartDate
impl Ord for EraStartDateULE
impl Ord for RocDateInner
impl Ord for IsoHour
impl Ord for IsoMinute
impl Ord for IsoSecond
impl Ord for MonthCode
impl Ord for NanoSecond
impl Ord for icu_calendar::types::Time
impl Ord for Field
impl Ord for FieldULE
impl Ord for DayPeriodULE
impl Ord for DayULE
impl Ord for HourULE
impl Ord for MonthULE
impl Ord for SecondULE
impl Ord for TimeZoneULE
impl Ord for WeekULE
impl Ord for WeekdayULE
impl Ord for YearULE
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 icu_locid::subtags::script::Script
impl Ord for Variant
impl Ord for Variants
impl Ord for LanguageStrStrPairVarULE
impl Ord for StrStrPairVarULE
impl Ord for PluralCategoryULE
impl Ord for BidiClass
impl Ord for CanonicalCombiningClass
impl Ord for EastAsianWidth
impl Ord for GraphemeClusterBreak
impl Ord for HangulSyllableType
impl Ord for IndicSyllabicCategory
impl Ord for JoiningType
impl Ord for LineBreak
impl Ord for icu_properties::props::Script
impl Ord for SentenceBreak
impl Ord for WordBreak
impl Ord for CheckedBidiPairedBracketTypeULE
impl Ord for NormalizedPropertyNameStr
The Ord impl will sort things using strict equality, but in such a way that all loose-equal items will sort into the same area, such that a map can be searched for both strict and loose equality.
impl Ord for DataKey
impl Ord for DataKeyHash
impl Ord for DataKeyMetadata
impl Ord for DataKeyPath
impl Ord for AuxiliaryKeys
impl Ord for DataRequestMetadata
impl Ord for MetazoneId
impl Ord for TimeZoneBcp47Id
impl Ord for ZoneVariant
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 naga::proc::layouter::Alignment
impl Ord for EarlyDepthTest
impl Ord for ResourceBinding
impl Ord for Scalar
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 regex_automata::util::id::PatternID
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 EmptyStaticAtomSet
impl Ord for CascadePriority
impl Ord for ScopeProximity
impl Ord for ShadowCascadeOrder
impl Ord for KeyframePercentage
impl Ord for LayerOrder
impl Ord for ContainerConditionId
impl Ord for LayerId
impl Ord for ScopeConditionId
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 WebGPUContextId
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 RawId
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 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 core::fmt::Error
impl Ord for PhantomPinned
impl Ord for Ipv4Addr
impl Ord for Ipv6Addr
impl Ord for SocketAddrV4
impl Ord for SocketAddrV6
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 LanguageStrStrPair<'a>
impl<'a> Ord for StrStrPair<'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>
impl<'a, T, F> Ord for VarZeroVec<'a, T, F>
impl<'b, T> Ord for Ptr<'b, T>
impl<A> Ord for &A
impl<A> Ord for &mut A
impl<A> Ord for SmallVec<A>
impl<A, B> Ord for Tuple2ULE<A, B>
impl<A, B, C> Ord for Tuple3ULE<A, B, C>
impl<A, B, C, D> Ord for Tuple4ULE<A, B, C, D>
impl<A, B, C, D, E> Ord for Tuple5ULE<A, B, C, D, E>
impl<A, B, C, D, E, F> Ord for Tuple6ULE<A, B, C, D, E, F>
impl<B> Ord for Cow<'_, B>
impl<B> Ord for BitSet<B>where
B: BitBlock,
impl<B> Ord for BitVec<B>where
B: BitBlock,
impl<C, A> Ord for icu_calendar::date::Date<A>
impl<C, A> Ord for icu_calendar::datetime::DateTime<A>
impl<Dyn> Ord for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E> Ord for I16Bytes<E>
impl<E> Ord for I32Bytes<E>
impl<E> Ord for I64Bytes<E>
impl<E> Ord for U16Bytes<E>
impl<E> Ord for U32Bytes<E>
impl<E> Ord for U64Bytes<E>
impl<F> Ord for Fwhere
F: FnPtr,
impl<F, A> Ord for Tendril<F, A>
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>
impl<K, V, A> Ord for BTreeMap<K, V, A>
impl<K, V, S> Ord for LiteMap<K, V, S>
impl<Kind> Ord for PortIndex<Kind>
impl<Kind> Ord for PortId<Kind>
impl<L, R> Ord for Either<L, R>
impl<Ptr> Ord for Pin<Ptr>
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 slices lexicographically.
impl<T> Ord for (T₁, T₂, …, Tₙ)
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>
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>
impl<T> Ord for ThinVec<T>where
T: Ord,
impl<T> Ord for Ascii<T>
impl<T> Ord for UniCase<T>
impl<T> Ord for Id<T>where
T: Marker,
impl<T> Ord for TryWriteableInfallibleAsWriteable<T>where
T: Ord,
impl<T> Ord for WriteableAsTryWriteableInfallible<T>where
T: Ord,
impl<T> Ord for Unalign<T>
impl<T> Ord for ZeroSlice<T>
impl<T> Ord for RefCell<T>
impl<T> Ord for NonNull<T>where
T: ?Sized,
impl<T> Ord for Cell<T>
impl<T> Ord for PhantomData<T>where
T: ?Sized,
impl<T> Ord for ManuallyDrop<T>
impl<T> Ord for NonZero<T>where
T: ZeroablePrimitive + Ord,
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>
impl<T, A> Ord for allocator_api2::stable::vec::Vec<T, A>
Implements ordering of vectors, lexicographically.
impl<T, A> Ord for Rc<T, A>
impl<T, A> Ord for alloc::boxed::Box<T, A>
impl<T, A> Ord for BTreeSet<T, A>
impl<T, A> Ord for LinkedList<T, A>
impl<T, A> Ord for VecDeque<T, A>
impl<T, A> Ord for alloc::sync::Arc<T, A>
impl<T, A> Ord for alloc::vec::Vec<T, A>
Implements ordering of vectors, lexicographically.
impl<T, B> Ord for Ref<B, [T]>
impl<T, B> Ord for Ref<B, T>
impl<T, E> Ord for core::result::Result<T, E>
impl<T, F> Ord for VarZeroSlice<T, F>
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<T, CAP>where
T: Ord,
impl<T, const N: usize> Ord for [T; N]where
T: Ord,
Implements comparison of arrays lexicographically.