script_bindings::import::module::cmp

Trait Ord

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

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

Trait for types that form a total order.

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

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

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

§Corollaries

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

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

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

§Derivable

This trait can be used with #[derive].

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

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

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

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

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

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

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

§Lexicographical comparison

Lexicographical comparison is an operation with the following properties:

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

§How can I implement Ord?

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

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

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

use std::cmp::Ordering;

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

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

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

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

impl Eq for Character {}

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

§Examples of incorrect Ord implementations

use std::cmp::Ordering;

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

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

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

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

impl Eq for Character {}

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

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

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

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

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

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

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

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

impl Eq for Character {}

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

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

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

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

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

Required Methods§

1.0.0 · Source

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

This method returns an Ordering between self and other.

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

§Examples
use std::cmp::Ordering;

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

Provided Methods§

1.21.0 · Source

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

Compares and returns the maximum of two values.

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

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

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

Compares and returns the minimum of two values.

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

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

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

Restrict a value to a certain interval.

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

§Panics

Panics if min > max.

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

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl Ord for byteorder::BigEndian

Source§

impl Ord for byteorder::LittleEndian

Source§

impl Ord for byteorder_lite::BigEndian

Source§

impl Ord for byteorder_lite::LittleEndian

Source§

impl Ord for Keviyah

Source§

impl Ord for StartOfYear

Source§

impl Ord for YearType

Source§

impl Ord for Meaning

Source§

impl Ord for SectionId

Source§

impl Ord for ColumnType

Source§

impl Ord for AttrValueKind

Source§

impl Ord for DoctypeIdKind

Source§

impl Ord for RawKind

Source§

impl Ord for ScriptEscapeKind

Source§

impl Ord for html5ever::tokenizer::states::State

Source§

impl Ord for AnyCalendarKind

Source§

impl Ord for ICU4XCollatorAlternateHandling

Source§

impl Ord for ICU4XCollatorBackwardSecondLevel

Source§

impl Ord for ICU4XCollatorCaseFirst

Source§

impl Ord for ICU4XCollatorCaseLevel

Source§

impl Ord for ICU4XCollatorMaxVariable

Source§

impl Ord for ICU4XCollatorNumeric

Source§

impl Ord for ICU4XCollatorStrength

Source§

impl Ord for AlternateHandling

Source§

impl Ord for CaseFirst

Source§

impl Ord for Strength

Source§

impl Ord for FieldLength

Source§

impl Ord for FieldNumericOverrides

Source§

impl Ord for Day

Source§

impl Ord for DayPeriod

Source§

impl Ord for FieldSymbol

Source§

impl Ord for Hour

Source§

impl Ord for Month

Source§

impl Ord for Second

Source§

impl Ord for TimeZone

Source§

impl Ord for Week

Source§

impl Ord for Weekday

Source§

impl Ord for Year

Source§

impl Ord for ExtensionType

Source§

impl Ord for PluralCategory

Source§

impl Ord for icu_properties::props::GeneralCategory

Source§

impl Ord for CheckedBidiPairedBracketType

Source§

impl Ord for LocaleFallbackPriority

Source§

impl Ord for LocaleFallbackSupplement

Source§

impl Ord for Compression

Source§

impl Ord for ImageType

Source§

impl Ord for log::Level

Source§

impl Ord for log::LevelFilter

Source§

impl Ord for Channels

Source§

impl Ord for ColorSpace

Source§

impl Ord for Utf8Sequence

Source§

impl Ord for Direction

Source§

impl Ord for SocketAddrAny

Source§

impl Ord for ViewportUnitUsage

Source§

impl Ord for ChildRestyleRequirement

Source§

impl Ord for CascadeLevel

Source§

impl Ord for DataValidity

Source§

impl Ord for Origin

Source§

impl Ord for style::stylesheets::rule_parser::State

Source§

impl Ord for SortKey

Source§

impl Ord for BorderStyle

Source§

impl Ord for OutlineStyle

Source§

impl Ord for PaintOrder

Source§

impl Ord for CaptionSide

Source§

impl Ord for DeflateLevel

Source§

impl Ord for BlendMode

Source§

impl Ord for PathVerb

Source§

impl Ord for GlyphClass

Source§

impl Ord for Permissions

Source§

impl Ord for Width

Source§

impl Ord for EmojiStatus

Source§

impl Ord for unicode_properties::tables::general_category::GeneralCategory

Source§

impl Ord for GeneralCategoryGroup

Source§

impl Ord for FontStretch

Source§

impl Ord for ExtendMode

Source§

impl Ord for FontHinting

Source§

impl Ord for FontLCDFilter

Source§

impl Ord for FontRenderMode

Source§

impl Ord for zerocopy::byteorder::BigEndian

Source§

impl Ord for zerocopy::byteorder::LittleEndian

1.0.0 · Source§

impl Ord for Ordering

Source§

impl Ord for AsciiChar

1.34.0 · Source§

impl Ord for Infallible

1.7.0 · Source§

impl Ord for IpAddr

1.0.0 · Source§

impl Ord for SocketAddr

1.0.0 · Source§

impl Ord for ErrorKind

1.0.0 · Source§

impl Ord for bool

1.0.0 · Source§

impl Ord for char

1.0.0 · Source§

impl Ord for i8

1.0.0 · Source§

impl Ord for i16

1.0.0 · Source§

impl Ord for i32

1.0.0 · Source§

impl Ord for i64

1.0.0 · Source§

impl Ord for i128

1.0.0 · Source§

impl Ord for isize

Source§

impl Ord for !

1.0.0 · Source§

impl Ord for str

Implements ordering of strings.

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

1.0.0 · Source§

impl Ord for u8

1.0.0 · Source§

impl Ord for u16

1.0.0 · Source§

impl Ord for u32

1.0.0 · Source§

impl Ord for u64

1.0.0 · Source§

impl Ord for u128

1.0.0 · Source§

impl Ord for ()

1.0.0 · Source§

impl Ord for usize

Source§

impl Ord for aho_corasick::util::primitives::PatternID

Source§

impl Ord for aho_corasick::util::primitives::StateID

Source§

impl Ord for Au

Source§

impl Ord for CrossProcessInstant

Source§

impl Ord for BlobIndex

Source§

impl Ord for BroadcastChannelRouterIndex

Source§

impl Ord for BrowsingContextIndex

Source§

impl Ord for DomExceptionIndex

Source§

impl Ord for DomPointIndex

Source§

impl Ord for HistoryStateIndex

Source§

impl Ord for ImageBitmapIndex

Source§

impl Ord for MessagePortIndex

Source§

impl Ord for MessagePortRouterIndex

Source§

impl Ord for OffscreenCanvasIndex

Source§

impl Ord for PipelineIndex

Source§

impl Ord for PipelineNamespaceId

Source§

impl Ord for ServiceWorkerIndex

Source§

impl Ord for ServiceWorkerRegistrationIndex

Source§

impl Ord for WebViewId

Source§

impl Ord for base::Epoch

Source§

impl Ord for bytes::bytes::Bytes

Source§

impl Ord for BytesMut

Source§

impl Ord for calendrical_calculations::chinese_based::Chinese

Source§

impl Ord for calendrical_calculations::chinese_based::Dangi

Source§

impl Ord for BookHebrew

Source§

impl Ord for RataDie

Source§

impl Ord for CowRcStr<'_>

Source§

impl Ord for SourcePosition

Source§

impl Ord for GamepadIndex

Source§

impl Ord for UnknownUnit

Source§

impl Ord for Text

Source§

impl Ord for ID

Source§

impl Ord for Weight

Source§

impl Ord for Register

Source§

impl Ord for DwAccess

Source§

impl Ord for DwAddr

Source§

impl Ord for DwAt

Source§

impl Ord for DwAte

Source§

impl Ord for DwCc

Source§

impl Ord for DwCfa

Source§

impl Ord for DwChildren

Source§

impl Ord for DwDefaulted

Source§

impl Ord for DwDs

Source§

impl Ord for DwDsc

Source§

impl Ord for DwEhPe

Source§

impl Ord for DwEnd

Source§

impl Ord for DwForm

Source§

impl Ord for DwId

Source§

impl Ord for DwIdx

Source§

impl Ord for DwInl

Source§

impl Ord for DwLang

Source§

impl Ord for DwLle

Source§

impl Ord for DwLnct

Source§

impl Ord for DwLne

Source§

impl Ord for DwLns

Source§

impl Ord for DwMacro

Source§

impl Ord for DwOp

Source§

impl Ord for DwOrd

Source§

impl Ord for DwRle

Source§

impl Ord for DwSect

Source§

impl Ord for DwSectV2

Source§

impl Ord for DwTag

Source§

impl Ord for DwUt

Source§

impl Ord for DwVirtuality

Source§

impl Ord for DwVis

Source§

impl Ord for ArangeEntry

Source§

impl Ord for Range

Source§

impl Ord for headers::common::access_control_max_age::AccessControlMaxAge

Source§

impl Ord for headers::common::access_control_max_age::AccessControlMaxAge

Source§

impl Ord for headers::common::age::Age

Source§

impl Ord for headers::common::age::Age

Source§

impl Ord for headers::common::date::Date

Source§

impl Ord for headers::common::date::Date

Source§

impl Ord for headers::common::expires::Expires

Source§

impl Ord for headers::common::expires::Expires

Source§

impl Ord for headers::common::if_modified_since::IfModifiedSince

Source§

impl Ord for headers::common::if_modified_since::IfModifiedSince

Source§

impl Ord for headers::common::if_unmodified_since::IfUnmodifiedSince

Source§

impl Ord for headers::common::if_unmodified_since::IfUnmodifiedSince

Source§

impl Ord for headers::common::last_modified::LastModified

Source§

impl Ord for headers::common::last_modified::LastModified

Source§

impl Ord for headers::common::server::Server

Source§

impl Ord for headers::common::server::Server

Source§

impl Ord for headers::common::user_agent::UserAgent

Source§

impl Ord for headers::common::user_agent::UserAgent

Source§

impl Ord for http::header::value::HeaderValue

Source§

impl Ord for http::header::value::HeaderValue

Source§

impl Ord for http::status::StatusCode

Source§

impl Ord for http::status::StatusCode

Source§

impl Ord for http::version::Version

Source§

impl Ord for http::version::Version

Source§

impl Ord for HttpDate

Source§

impl Ord for hyper::ext::h1_reason_phrase::ReasonPhrase

Source§

impl Ord for hyper::ext::h1_reason_phrase::ReasonPhrase

Source§

impl Ord for icu_calendar::chinese::Chinese

Source§

impl Ord for ChineseDateInner

Source§

impl Ord for Coptic

Source§

impl Ord for CopticDateInner

Source§

impl Ord for icu_calendar::dangi::Dangi

Source§

impl Ord for DangiDateInner

Source§

impl Ord for Ethiopian

Source§

impl Ord for EthiopianDateInner

Source§

impl Ord for GregorianDateInner

Source§

impl Ord for Hebrew

Source§

impl Ord for HebrewDateInner

Source§

impl Ord for Indian

Source§

impl Ord for IndianDateInner

Source§

impl Ord for IslamicCivil

Source§

impl Ord for IslamicCivilDateInner

Source§

impl Ord for IslamicDateInner

Source§

impl Ord for IslamicTabular

Source§

impl Ord for IslamicTabularDateInner

Source§

impl Ord for IslamicUmmAlQuraDateInner

Source§

impl Ord for Iso

Source§

impl Ord for IsoDateInner

Source§

impl Ord for JapaneseDateInner

Source§

impl Ord for Julian

Source§

impl Ord for Persian

Source§

impl Ord for PersianDateInner

Source§

impl Ord for PackedChineseBasedYearInfo

Source§

impl Ord for PackedIslamicYearInfo

Source§

impl Ord for EraStartDate

Source§

impl Ord for EraStartDateULE

Source§

impl Ord for RocDateInner

Source§

impl Ord for IsoHour

Source§

impl Ord for IsoMinute

Source§

impl Ord for IsoSecond

Source§

impl Ord for MonthCode

Source§

impl Ord for NanoSecond

Source§

impl Ord for icu_calendar::types::Time

Source§

impl Ord for Field

Source§

impl Ord for FieldULE

Source§

impl Ord for DayPeriodULE

Source§

impl Ord for DayULE

Source§

impl Ord for HourULE

Source§

impl Ord for MonthULE

Source§

impl Ord for SecondULE

Source§

impl Ord for TimeZoneULE

Source§

impl Ord for WeekULE

Source§

impl Ord for WeekdayULE

Source§

impl Ord for YearULE

Source§

impl Ord for Other

Source§

impl Ord for icu_locid::extensions::other::subtag::Subtag

Source§

impl Ord for icu_locid::extensions::private::other::Subtag

Source§

impl Ord for Private

Source§

impl Ord for Fields

Source§

impl Ord for icu_locid::extensions::transform::key::Key

Source§

impl Ord for icu_locid::extensions::transform::value::Value

Source§

impl Ord for icu_locid::extensions::unicode::attribute::Attribute

Source§

impl Ord for Attributes

Source§

impl Ord for icu_locid::extensions::unicode::key::Key

Source§

impl Ord for Keywords

Source§

impl Ord for Unicode

Source§

impl Ord for icu_locid::extensions::unicode::value::Value

Source§

impl Ord for Language

Source§

impl Ord for Region

Source§

impl Ord for icu_locid::subtags::script::Script

Source§

impl Ord for Variant

Source§

impl Ord for Variants

Source§

impl Ord for LanguageStrStrPairVarULE

Source§

impl Ord for StrStrPairVarULE

Source§

impl Ord for PluralCategoryULE

Source§

impl Ord for BidiClass

Source§

impl Ord for CanonicalCombiningClass

Source§

impl Ord for EastAsianWidth

Source§

impl Ord for GraphemeClusterBreak

Source§

impl Ord for HangulSyllableType

Source§

impl Ord for IndicSyllabicCategory

Source§

impl Ord for JoiningType

Source§

impl Ord for LineBreak

Source§

impl Ord for icu_properties::props::Script

Source§

impl Ord for SentenceBreak

Source§

impl Ord for WordBreak

Source§

impl Ord for CheckedBidiPairedBracketTypeULE

Source§

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.

Source§

impl Ord for DataKey

Source§

impl Ord for DataKeyHash

Source§

impl Ord for DataKeyMetadata

Source§

impl Ord for DataKeyPath

Source§

impl Ord for AuxiliaryKeys

Source§

impl Ord for DataRequestMetadata

Source§

impl Ord for MetazoneId

Source§

impl Ord for TimeZoneBcp47Id

Source§

impl Ord for ZoneVariant

Source§

impl Ord for ImageSize

Source§

impl Ord for Modifiers

Source§

impl Ord for markup5ever::interface::Attribute

Source§

impl Ord for QualName

Source§

impl Ord for Mime

Source§

impl Ord for Interest

Source§

impl Ord for Token

Source§

impl Ord for Transformations

Source§

impl Ord for LazyStateID

Source§

impl Ord for Unit

Source§

impl Ord for regex_automata::util::id::PatternID

Source§

impl Ord for NonMaxUsize

Source§

impl Ord for regex_automata::util::primitives::PatternID

Source§

impl Ord for SmallIndex

Source§

impl Ord for regex_automata::util::primitives::StateID

Source§

impl Ord for Position

Source§

impl Ord for Span

Source§

impl Ord for Literal

Source§

impl Ord for ClassBytesRange

Source§

impl Ord for ClassUnicodeRange

Source§

impl Ord for Utf8Range

Source§

impl Ord for Node<'_, '_>

Source§

impl Ord for SocketAddrUnix

Source§

impl Ord for Opcode

Source§

impl Ord for SockaddrXdpFlags

Source§

impl Ord for SocketAddrXdp

Source§

impl Ord for rustybuzz::hb::common::Script

Source§

impl Ord for ByteBuf

Source§

impl Ord for serde_bytes::bytes::Bytes

Source§

impl Ord for ServoUrl

Source§

impl Ord for DefaultKey

Source§

impl Ord for KeyData

Source§

impl Ord for FiniteF32

Source§

impl Ord for FiniteF64

Source§

impl Ord for NonZeroPositiveF32

Source§

impl Ord for NonZeroPositiveF64

Source§

impl Ord for NormalizedF32

Source§

impl Ord for NormalizedF64

Source§

impl Ord for PositiveF32

Source§

impl Ord for PositiveF64

Source§

impl Ord for EmptyStaticAtomSet

Source§

impl Ord for CascadePriority

Source§

impl Ord for ScopeProximity

Source§

impl Ord for ShadowCascadeOrder

Source§

impl Ord for KeyframePercentage

Source§

impl Ord for LayerOrder

Source§

impl Ord for ContainerConditionId

Source§

impl Ord for LayerId

Source§

impl Ord for ScopeConditionId

Source§

impl Ord for AtomStaticSet

Source§

impl Ord for time::date::Date

Source§

impl Ord for time::duration::Duration

Source§

impl Ord for OffsetDateTime

Source§

impl Ord for PrimitiveDateTime

Source§

impl Ord for time::time::Time

Source§

impl Ord for UtcDateTime

Source§

impl Ord for UtcOffset

Source§

impl Ord for NormalizedF32Exclusive

Source§

impl Ord for Ready

Source§

impl Ord for tokio::time::instant::Instant

Source§

impl Ord for AnyDelimiterCodec

Source§

impl Ord for BytesCodec

Source§

impl Ord for LinesCodec

Source§

impl Ord for tracing_core::metadata::Level

Source§

impl Ord for tracing_core::metadata::LevelFilter

Source§

impl Ord for GlyphId

Source§

impl Ord for Tag

Source§

impl Ord for ATerm

Source§

impl Ord for B0

Source§

impl Ord for B1

Source§

impl Ord for Z0

Source§

impl Ord for Equal

Source§

impl Ord for Greater

Source§

impl Ord for Less

Source§

impl Ord for UTerm

Source§

impl Ord for UnicodeVersion

Source§

impl Ord for unicode_bidi::level::Level

Source§

impl Ord for Url

URLs compare like their serialization.

Source§

impl Ord for Braced

Source§

impl Ord for Hyphenated

Source§

impl Ord for Simple

Source§

impl Ord for Urn

Source§

impl Ord for Uuid

Source§

impl Ord for LocalNameStaticSet

Source§

impl Ord for NamespaceStaticSet

Source§

impl Ord for PrefixStaticSet

Source§

impl Ord for ColorU

Source§

impl Ord for PremultipliedColorF

Source§

impl Ord for PrimitiveFlags

Source§

impl Ord for StackingContextFlags

Source§

impl Ord for FontInstanceFlags

Source§

impl Ord for FontInstanceKey

Source§

impl Ord for FontInstanceOptions

Source§

impl Ord for FontInstancePlatformOptions

Source§

impl Ord for FontKey

Source§

impl Ord for FontSize

Source§

impl Ord for FontVariation

Source§

impl Ord for GlyphOptions

Source§

impl Ord for NativeFontHandle

Source§

impl Ord for SyntheticItalics

Source§

impl Ord for ImageDescriptorFlags

Source§

impl Ord for DebugFlags

Source§

impl Ord for webrender_api::Epoch

Source§

impl Ord for IdNamespace

Source§

impl Ord for RenderReasons

Source§

impl Ord for DevicePixel

Source§

impl Ord for FramebufferPixel

Source§

impl Ord for LayoutPixel

Source§

impl Ord for PicturePixel

Source§

impl Ord for RasterPixel

Source§

impl Ord for Tiles

Source§

impl Ord for VisPixel

Source§

impl Ord for WorldPixel

Source§

impl Ord for CharULE

Source§

impl Ord for UnvalidatedChar

Source§

impl Ord for UnvalidatedStr

Source§

impl Ord for Index16

Source§

impl Ord for Index32

Source§

impl Ord for DOMString

Source§

impl Ord for USVString

Source§

impl Ord for Alignment

1.64.0 · Source§

impl Ord for CString

1.0.0 · Source§

impl Ord for String

1.0.0 · Source§

impl Ord for TypeId

1.27.0 · Source§

impl Ord for CpuidResult

1.0.0 · Source§

impl Ord for CStr

1.0.0 · Source§

impl Ord for Error

1.33.0 · Source§

impl Ord for PhantomPinned

1.0.0 · Source§

impl Ord for Ipv4Addr

1.0.0 · Source§

impl Ord for Ipv6Addr

1.0.0 · Source§

impl Ord for SocketAddrV4

1.0.0 · Source§

impl Ord for SocketAddrV6

1.3.0 · Source§

impl Ord for core::time::Duration

1.0.0 · Source§

impl Ord for OsStr

1.0.0 · Source§

impl Ord for OsString

1.0.0 · Source§

impl Ord for Components<'_>

1.0.0 · Source§

impl Ord for Path

1.0.0 · Source§

impl Ord for PathBuf

1.0.0 · Source§

impl Ord for PrefixComponent<'_>

1.8.0 · Source§

impl Ord for std::time::Instant

1.8.0 · Source§

impl Ord for SystemTime

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Source§

impl<'a> Ord for Codepoint<'a>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.10.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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,

Source§

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,

Source§

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,

1.0.0 · Source§

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

Source§

impl<C, A> Ord for icu_calendar::date::Date<A>
where C: Calendar, <C as Calendar>::DateInner: Ord, A: AsCalendar<Calendar = C>,

Source§

impl<C, A> Ord for DateTime<A>
where C: Calendar, <C as Calendar>::DateInner: Ord, A: AsCalendar<Calendar = C>,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.4.0 · Source§

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

Source§

impl<F, A> Ord for Tendril<F, A>
where F: SliceFormat, <F as SliceFormat>::Slice: Ord, A: Atomicity,

Source§

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

1.0.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.41.0 · Source§

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

Source§

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

Source§

impl<Static> Ord for Atom<Static>
where Static: StaticAtomSet,

Source§

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

Source§

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

Source§

impl<Storage> Ord for script_bindings::import::module::__BindgenBitfieldUnit<Storage>
where Storage: Ord,

Source§

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

1.0.0 · Source§

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

1.36.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Implements comparison of slices lexicographically.

1.0.0 · Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.25.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.0.0 · Source§

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

1.20.0 · Source§

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

1.28.0 · Source§

impl<T> Ord for NonZero<T>

1.74.0 · Source§

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

1.0.0 · Source§

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

1.19.0 · Source§

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

Source§

impl<T, A> Ord for Abgr<T, A>
where T: Ord, A: Ord,

Source§

impl<T, A> Ord for Argb<T, A>
where T: Ord, A: Ord,

Source§

impl<T, A> Ord for Bgra<T, A>
where T: Ord, A: Ord,

Source§

impl<T, A> Ord for GrayA<T, A>
where T: Ord, A: Ord,

Source§

impl<T, A> Ord for GrayAlpha_v08<T, A>
where T: Ord, A: Ord,

Source§

impl<T, A> Ord for Rgba<T, A>
where T: Ord, A: Ord,

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Implements ordering of vectors, lexicographically.

Source§

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

1.0.0 · Source§

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

Source§

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

Source§

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

Source§

impl<T, Src, Dst> Ord for Scale<T, Src, Dst>
where T: Ord,

Source§

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

Source§

impl<T, const CAP: usize> Ord for arrayvec::arrayvec::ArrayVec<T, CAP>
where T: Ord,

1.0.0 · Source§

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

Implements comparison of arrays lexicographically.

Source§

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

Source§

impl<T: Ord> Ord for NoTrace<T>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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