Skip to main content

FormatEquivalent

Trait FormatEquivalent 

Source
pub trait FormatEquivalent {
    // Required method
    fn format_equivalent(&self, other: &Self) -> bool;
}
Expand description

Structural equality of two Raw syntax trees modulo formatting — currently, modulo source spans.

Returns true when self and other denote the same program. This is the invariant the formatter must uphold: formatting changes spans (and, in the future, possibly node order) but never meaning.

Required Methods§

Source

fn format_equivalent(&self, other: &Self) -> bool

Returns true if self and other are equivalent up to formatting.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl FormatEquivalent for String

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for bool

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for f64

Numeric literals compare bit-for-bit.

Bit comparison (rather than ==) makes the relation reflexive even for the degenerate NaN case and sidesteps the clippy::float_cmp lint — two literals are format-equivalent exactly when they are the same literal.

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for i32

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for i64

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for u64

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl FormatEquivalent for usize

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl<T: FormatEquivalent> FormatEquivalent for Box<T>

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl<T: FormatEquivalent> FormatEquivalent for Option<T>

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl<T: FormatEquivalent> FormatEquivalent for Vec<T>

Source§

fn format_equivalent(&self, other: &Self) -> bool

Source§

impl<T: FormatEquivalent> FormatEquivalent for [T]

Source§

fn format_equivalent(&self, other: &Self) -> bool

Implementors§

Source§

impl FormatEquivalent for AssertBody

Source§

impl FormatEquivalent for AssertDecl

Source§

impl FormatEquivalent for Attribute

Source§

impl FormatEquivalent for AttributeArg

Source§

impl FormatEquivalent for BaseDimDecl

Source§

impl FormatEquivalent for BinOp

Source§

impl FormatEquivalent for BindableVisibility

Source§

impl FormatEquivalent for ConstNodeDecl

Source§

impl FormatEquivalent for ConstructorName

Source§

impl FormatEquivalent for DagDecl

Source§

impl FormatEquivalent for DeclKind

Source§

impl FormatEquivalent for DeclName

Source§

impl FormatEquivalent for Declaration

Source§

impl FormatEquivalent for DimDecl

Source§

impl FormatEquivalent for DimExpr

Source§

impl FormatEquivalent for DimExprItem

Source§

impl FormatEquivalent for DimName

Source§

impl FormatEquivalent for DimTerm

Source§

impl FormatEquivalent for DomainBound

Source§

impl FormatEquivalent for DomainBoundKind

Source§

impl FormatEquivalent for Encoding

Source§

impl FormatEquivalent for EncodingChannel

Source§

impl FormatEquivalent for Expr

Source§

impl FormatEquivalent for ExprKind

Source§

impl FormatEquivalent for FieldDecl

Source§

impl FormatEquivalent for FieldInit

Source§

impl FormatEquivalent for FieldName

Source§

impl FormatEquivalent for FigureDecl

Source§

impl FormatEquivalent for File

Source§

impl FormatEquivalent for ForBinding

Source§

impl FormatEquivalent for ForBindingIndex

Source§

impl FormatEquivalent for GenericArg

Source§

impl FormatEquivalent for GenericConstraint

Source§

impl FormatEquivalent for GenericParam

Source§

impl FormatEquivalent for GenericParamName

Source§

impl FormatEquivalent for Ident

Source§

impl FormatEquivalent for IdentPath

Source§

impl FormatEquivalent for ImportDecl

Source§

impl FormatEquivalent for ImportItem

Source§

impl FormatEquivalent for ImportItemNamespace

Source§

impl FormatEquivalent for ImportKind

Source§

impl FormatEquivalent for IncludeDecl

Source§

impl FormatEquivalent for IndexArg

Source§

impl FormatEquivalent for IndexDecl

Source§

impl FormatEquivalent for IndexDeclKind

Source§

impl FormatEquivalent for IndexExpr

Source§

impl FormatEquivalent for IndexName

Source§

impl FormatEquivalent for IndexVariantName

Source§

impl FormatEquivalent for LayerDecl

Source§

impl FormatEquivalent for LocalName

Source§

impl FormatEquivalent for MapEntry

Source§

impl FormatEquivalent for MapEntryIndex

Source§

impl FormatEquivalent for MapEntryKey

Source§

impl FormatEquivalent for MarkSpec

Source§

impl FormatEquivalent for MarkType

Source§

impl FormatEquivalent for MatchArm

Source§

impl FormatEquivalent for MatchPattern

Source§

impl FormatEquivalent for ModuleAliasName

Source§

impl FormatEquivalent for ModulePath

Source§

impl FormatEquivalent for MulDivOp

Source§

impl FormatEquivalent for MultiDataRow

Source§

impl FormatEquivalent for MultiDecl

Source§

impl FormatEquivalent for MultiDeclSharedAxes

Source§

impl FormatEquivalent for MultiDeclSlice

Source§

impl FormatEquivalent for MultiDeclSlot

Source§

impl FormatEquivalent for MultiHeaderCell

Source§

impl FormatEquivalent for MultiSlotAxis

Source§

impl FormatEquivalent for MultiSlotColumnSpan

Source§

impl FormatEquivalent for MultiSlotKind

Source§

impl FormatEquivalent for NamePath

Source§

impl FormatEquivalent for NatExpr

Source§

impl FormatEquivalent for NodeDecl

Source§

impl FormatEquivalent for ParamBinding

Source§

impl FormatEquivalent for ParamDecl

Source§

impl FormatEquivalent for PatternBinding

Source§

impl FormatEquivalent for PlotDecl

Source§

impl FormatEquivalent for PlotField

Source§

impl FormatEquivalent for PlotPropertyName

Source§

impl FormatEquivalent for Rational

Source§

impl FormatEquivalent for RawDeclSugar

Source§

impl FormatEquivalent for RawExprSugar

Source§

impl FormatEquivalent for ScopedName

Source§

impl FormatEquivalent for StructTypeName

Source§

impl FormatEquivalent for TableIndexSpec

Source§

impl FormatEquivalent for TypeDecl

Source§

impl FormatEquivalent for TypeDeclBody

Source§

impl FormatEquivalent for TypeExpr

Source§

impl FormatEquivalent for TypeExprKind

Source§

impl FormatEquivalent for UnaryOp

Source§

impl FormatEquivalent for UnionMember

Source§

impl FormatEquivalent for UnitConstness

Source§

impl FormatEquivalent for UnitDecl

Source§

impl FormatEquivalent for UnitDef

Source§

impl FormatEquivalent for UnitExpr

Source§

impl FormatEquivalent for UnitExprItem

Source§

impl FormatEquivalent for UnitName

Source§

impl FormatEquivalent for UnitRef

Source§

impl FormatEquivalent for UnresolvedRef

Source§

impl FormatEquivalent for Visibility

Source§

impl<T: FormatEquivalent> FormatEquivalent for NonEmpty<T>

Source§

impl<T: FormatEquivalent> FormatEquivalent for Spanned<T>

A spanned value is equivalent to another when their payloads are — the span is the formatting difference this whole trait exists to ignore.