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§
Sourcefn format_equivalent(&self, other: &Self) -> bool
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
impl FormatEquivalent for String
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for bool
impl FormatEquivalent for bool
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for f64
Numeric literals compare bit-for-bit.
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.
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for i32
impl FormatEquivalent for i32
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for i64
impl FormatEquivalent for i64
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for u64
impl FormatEquivalent for u64
fn format_equivalent(&self, other: &Self) -> bool
Source§impl FormatEquivalent for usize
impl FormatEquivalent for usize
fn format_equivalent(&self, other: &Self) -> bool
Source§impl<T: FormatEquivalent> FormatEquivalent for Box<T>
impl<T: FormatEquivalent> FormatEquivalent for Box<T>
fn format_equivalent(&self, other: &Self) -> bool
Source§impl<T: FormatEquivalent> FormatEquivalent for Option<T>
impl<T: FormatEquivalent> FormatEquivalent for Option<T>
fn format_equivalent(&self, other: &Self) -> bool
Source§impl<T: FormatEquivalent> FormatEquivalent for Vec<T>
impl<T: FormatEquivalent> FormatEquivalent for Vec<T>
fn format_equivalent(&self, other: &Self) -> bool
Source§impl<T: FormatEquivalent> FormatEquivalent for [T]
impl<T: FormatEquivalent> FormatEquivalent for [T]
fn format_equivalent(&self, other: &Self) -> bool
Implementors§
impl FormatEquivalent for AssertBody
impl FormatEquivalent for AssertDecl
impl FormatEquivalent for Attribute
impl FormatEquivalent for AttributeArg
impl FormatEquivalent for BaseDimDecl
impl FormatEquivalent for BinOp
impl FormatEquivalent for BindableVisibility
impl FormatEquivalent for ConstNodeDecl
impl FormatEquivalent for ConstructorName
impl FormatEquivalent for DagDecl
impl FormatEquivalent for DeclKind
impl FormatEquivalent for DeclName
impl FormatEquivalent for Declaration
impl FormatEquivalent for DimDecl
impl FormatEquivalent for DimExpr
impl FormatEquivalent for DimExprItem
impl FormatEquivalent for DimName
impl FormatEquivalent for DimTerm
impl FormatEquivalent for DomainBound
impl FormatEquivalent for DomainBoundKind
impl FormatEquivalent for Encoding
impl FormatEquivalent for EncodingChannel
impl FormatEquivalent for Expr
impl FormatEquivalent for ExprKind
impl FormatEquivalent for FieldDecl
impl FormatEquivalent for FieldInit
impl FormatEquivalent for FieldName
impl FormatEquivalent for FigureDecl
impl FormatEquivalent for File
impl FormatEquivalent for ForBinding
impl FormatEquivalent for ForBindingIndex
impl FormatEquivalent for GenericArg
impl FormatEquivalent for GenericConstraint
impl FormatEquivalent for GenericParam
impl FormatEquivalent for GenericParamName
impl FormatEquivalent for Ident
impl FormatEquivalent for IdentPath
impl FormatEquivalent for ImportDecl
impl FormatEquivalent for ImportItem
impl FormatEquivalent for ImportItemNamespace
impl FormatEquivalent for ImportKind
impl FormatEquivalent for IncludeDecl
impl FormatEquivalent for IndexArg
impl FormatEquivalent for IndexDecl
impl FormatEquivalent for IndexDeclKind
impl FormatEquivalent for IndexExpr
impl FormatEquivalent for IndexName
impl FormatEquivalent for IndexVariantName
impl FormatEquivalent for LayerDecl
impl FormatEquivalent for LocalName
impl FormatEquivalent for MapEntry
impl FormatEquivalent for MapEntryIndex
impl FormatEquivalent for MapEntryKey
impl FormatEquivalent for MarkSpec
impl FormatEquivalent for MarkType
impl FormatEquivalent for MatchArm
impl FormatEquivalent for MatchPattern
impl FormatEquivalent for ModuleAliasName
impl FormatEquivalent for ModulePath
impl FormatEquivalent for MulDivOp
impl FormatEquivalent for MultiDataRow
impl FormatEquivalent for MultiDecl
impl FormatEquivalent for MultiDeclSlice
impl FormatEquivalent for MultiDeclSlot
impl FormatEquivalent for MultiHeaderCell
impl FormatEquivalent for MultiSlotAxis
impl FormatEquivalent for MultiSlotColumnSpan
impl FormatEquivalent for MultiSlotKind
impl FormatEquivalent for NamePath
impl FormatEquivalent for NatExpr
impl FormatEquivalent for NodeDecl
impl FormatEquivalent for ParamBinding
impl FormatEquivalent for ParamDecl
impl FormatEquivalent for PatternBinding
impl FormatEquivalent for PlotDecl
impl FormatEquivalent for PlotField
impl FormatEquivalent for PlotPropertyName
impl FormatEquivalent for Rational
impl FormatEquivalent for RawDeclSugar
impl FormatEquivalent for RawExprSugar
impl FormatEquivalent for ScopedName
impl FormatEquivalent for StructTypeName
impl FormatEquivalent for TableIndexSpec
impl FormatEquivalent for TypeDecl
impl FormatEquivalent for TypeDeclBody
impl FormatEquivalent for TypeExpr
impl FormatEquivalent for TypeExprKind
impl FormatEquivalent for UnaryOp
impl FormatEquivalent for UnionMember
impl FormatEquivalent for UnitConstness
impl FormatEquivalent for UnitDecl
impl FormatEquivalent for UnitDef
impl FormatEquivalent for UnitExpr
impl FormatEquivalent for UnitExprItem
impl FormatEquivalent for UnitName
impl FormatEquivalent for UnitRef
impl FormatEquivalent for UnresolvedRef
impl FormatEquivalent for Visibility
impl<T: FormatEquivalent> FormatEquivalent for NonEmpty<T>
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.