Skip to content

Commit

Permalink
Let the compiler generate more comparison operators in WebCore
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=261095

Reviewed by Darin Adler.

Let the compiler generate more comparison operators in WebCore now
that we support c++20.

* Source/WebCore/rendering/CSSValueKey.h:
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/ClipRect.h:
(WebCore::ClipRect::operator== const): Deleted.
* Source/WebCore/rendering/EventRegion.cpp:
(WebCore::EventRegion::operator== const): Deleted.
* Source/WebCore/rendering/EventRegion.h:
* Source/WebCore/rendering/GapRects.h:
(WebCore::GapRects::operator== const): Deleted.
* Source/WebCore/rendering/HighlightData.h:
(WebCore::RenderRange::operator== const): Deleted.
* Source/WebCore/rendering/LayerAncestorClippingStack.h:
(WebCore::CompositedClipData::operator== const): Deleted.
* Source/WebCore/rendering/Pagination.h:
(WebCore::Pagination::operator== const): Deleted.
* Source/WebCore/rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::operator== const): Deleted.
* Source/WebCore/rendering/style/BasicShapes.cpp:
(WebCore::SVGPathTransformedByteStream::operator== const): Deleted.
* Source/WebCore/rendering/style/BorderData.h:
(WebCore::BorderData::operator== const): Deleted.
* Source/WebCore/rendering/style/BorderValue.h:
(WebCore::BorderValue::operator== const): Deleted.
* Source/WebCore/rendering/style/CounterContent.h:
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/CounterDirectives.h:
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/CursorData.h:
(WebCore::CursorData::operator== const): Deleted.
* Source/WebCore/rendering/style/FillLayer.h:
(WebCore::FillRepeatXY::operator== const): Deleted.
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/GapLength.h:
(WebCore::GapLength::operator== const): Deleted.
* Source/WebCore/rendering/style/GridArea.h:
(WebCore::GridSpan::operator== const): Deleted.
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/GridLength.h:
(WebCore::GridLength::operator== const): Deleted.
* Source/WebCore/rendering/style/GridPosition.cpp:
(WebCore::GridPosition::operator== const): Deleted.
* Source/WebCore/rendering/style/GridPosition.h:
* Source/WebCore/rendering/style/LineClampValue.h:
(WebCore::LineClampValue::operator== const): Deleted.
* Source/WebCore/rendering/style/ListStyleType.h:
(WebCore::ListStyleType::operator== const): Deleted.
* Source/WebCore/rendering/style/NinePieceImage.h:
(WebCore::NinePieceImage::operator== const): Deleted.
* Source/WebCore/rendering/style/OffsetRotation.cpp:
(WebCore::OffsetRotation::operator== const): Deleted.
* Source/WebCore/rendering/style/OffsetRotation.h:
* Source/WebCore/rendering/style/OutlineValue.h:
(WebCore::OutlineValue::operator== const): Deleted.
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::InheritedFlags::operator== const): Deleted.
(WebCore::RenderStyle::NonInheritedFlags::operator== const): Deleted.
* Source/WebCore/rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::InheritedFlags::operator== const): Deleted.
* Source/WebCore/rendering/style/StyleColorScheme.h:
(WebCore::StyleColorScheme::operator== const): Deleted.
* Source/WebCore/rendering/style/StyleContentAlignmentData.h:
(WebCore::StyleContentAlignmentData::operator== const): Deleted.
* Source/WebCore/rendering/style/StyleGradientImage.cpp:
* Source/WebCore/rendering/style/StyleGradientImage.h:
* Source/WebCore/rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator== const):
(WebCore::operator==): Deleted.
(WebCore::GridTrackEntrySubgrid::operator== const): Deleted.
(WebCore::GridTrackEntryMasonry::operator== const): Deleted.
(WebCore::GridTrackEntryRepeat::operator== const): Deleted.
(WebCore::GridTrackEntryAutoRepeat::operator== const): Deleted.
(WebCore::MasonryAutoFlow::operator== const): Deleted.
* Source/WebCore/rendering/style/StyleScrollSnapPoints.h:
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/StyleSelfAlignmentData.h:
(WebCore::StyleSelfAlignmentData::operator== const): Deleted.
* Source/WebCore/rendering/style/StyleTextBoxEdge.h:
(WebCore::operator==): Deleted.
* Source/WebCore/rendering/style/TextSizeAdjustment.h:
(WebCore::TextSizeAdjustment::operator== const): Deleted.
(WebCore::AutosizeStatus::operator== const): Deleted.
* Source/WebCore/rendering/style/TextUnderlineOffset.h:
(WebCore::TextUnderlineOffset::operator== const): Deleted.
* Source/WebCore/rendering/style/WillChangeData.h:
(WebCore::WillChangeData::AnimatableFeature::operator== const): Deleted.
* Source/WebCore/rendering/svg/RenderSVGResourceGradient.h:
(WebCore::GradientData::Inputs::operator== const): Deleted.
* Source/WebCore/style/MatchResult.h:
(WebCore::Style::MatchResult::isEmpty const):
* Source/WebCore/svg/SVGLengthValue.h:
(WebCore::operator==): Deleted.
* Source/WebCore/svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::operator== const): Deleted.
* Source/WebCore/workers/service/ServiceWorkerJobDataIdentifier.h:
(WebCore::operator==): Deleted.
* Source/WebCore/workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::operator== const): Deleted.
* Source/WebCore/workers/service/ServiceWorkerRegistrationKey.h:
* Source/WebCore/workers/shared/SharedWorkerKey.h:
(WebCore::operator==): Deleted.

Canonical link: https://commits.webkit.org/267612@main
  • Loading branch information
cdumez committed Sep 4, 2023
1 parent a24c1ac commit c14146d
Show file tree
Hide file tree
Showing 49 changed files with 83 additions and 338 deletions.
8 changes: 2 additions & 6 deletions Source/WebCore/rendering/CSSValueKey.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,15 @@
namespace WebCore {

struct CSSValueKey {

unsigned hash() const;

friend bool operator==(const CSSValueKey&, const CSSValueKey&) = default;

unsigned cssValueID;
bool useDarkAppearance;
bool useElevatedUserInterfaceLevel;
};

inline bool operator==(const CSSValueKey& a, const CSSValueKey& b)
{
return a.cssValueID == b.cssValueID && a.useDarkAppearance == b.useDarkAppearance && a.useElevatedUserInterfaceLevel == b.useElevatedUserInterfaceLevel;
}

inline unsigned CSSValueKey::hash() const
{
return cssValueID;
Expand Down
3 changes: 1 addition & 2 deletions Source/WebCore/rendering/ClipRect.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ class ClipRect {
bool affectedByRadius() const { return m_affectedByRadius; }
void setAffectedByRadius(bool affectedByRadius) { m_affectedByRadius = affectedByRadius; }

bool operator==(const ClipRect& other) const { return rect() == other.rect() && affectedByRadius() == other.affectedByRadius(); }
bool operator==(const LayoutRect& otherRect) const { return rect() == otherRect; }
friend bool operator==(const ClipRect&, const ClipRect&) = default;

void intersect(const LayoutRect& other);
void intersect(const ClipRect& other);
Expand Down
27 changes: 0 additions & 27 deletions Source/WebCore/rendering/EventRegion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,33 +344,6 @@ EventRegion::EventRegion(Region&& region
{
}

bool EventRegion::operator==(const EventRegion& other) const
{
#if ENABLE(TOUCH_ACTION_REGIONS)
if (m_touchActionRegions != other.m_touchActionRegions)
return false;
#endif

#if ENABLE(WHEEL_EVENT_REGIONS)
if (m_wheelEventListenerRegion != other.m_wheelEventListenerRegion)
return false;
if (m_nonPassiveWheelEventListenerRegion != other.m_nonPassiveWheelEventListenerRegion)
return false;
#endif

#if ENABLE(EDITABLE_REGION)
if (m_editableRegion != other.m_editableRegion)
return false;
#endif

#if ENABLE(INTERACTION_REGIONS_IN_EVENT_REGION)
if (m_interactionRegions != other.m_interactionRegions)
return false;
#endif

return m_region == other.m_region;
}

void EventRegion::unite(const Region& region, const RenderStyle& style, bool overrideUserModifyIsEditable)
{
if (style.effectivePointerEvents() == PointerEvents::None)
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/EventRegion.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class EventRegion {

bool isEmpty() const { return m_region.isEmpty(); }

WEBCORE_EXPORT bool operator==(const EventRegion&) const;
friend bool operator==(const EventRegion&, const EventRegion&) = default;

void unite(const Region&, const RenderStyle&, bool overrideUserModifyIsEditable = false);
void translate(const IntSize&);
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/GapRects.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,7 @@ namespace WebCore {
return result;
}

bool operator==(const GapRects& other) const
{
return m_left == other.left() && m_center == other.center() && m_right == other.right();
}
friend bool operator==(const GapRects&, const GapRects&) = default;

private:
LayoutRect m_left;
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/HighlightData.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,7 @@ class RenderRange {
unsigned startOffset() const { return m_startOffset; }
unsigned endOffset() const { return m_endOffset; }

bool operator==(const RenderRange& other) const
{
return m_start == other.m_start && m_end == other.m_end && m_startOffset == other.m_startOffset && m_endOffset == other.m_endOffset;
}
friend bool operator==(const RenderRange&, const RenderRange&) = default;

private:
WeakPtr<RenderObject> m_start;
Expand Down
7 changes: 1 addition & 6 deletions Source/WebCore/rendering/LayerAncestorClippingStack.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,7 @@ struct CompositedClipData {
{
}

bool operator==(const CompositedClipData& other) const
{
return clippingLayer == other.clippingLayer
&& clipRect == other.clipRect
&& isOverflowScroll == other.isOverflowScroll;
}
friend bool operator==(const CompositedClipData&, const CompositedClipData&) = default;

WeakPtr<RenderLayer> clippingLayer; // For scroller entries, the scrolling layer. For other entries, the most-descendant layer that has a clip.
RoundedRect clipRect; // In the coordinate system of the RenderLayer that owns the stack.
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/Pagination.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,7 @@ enum PaginationMode : uint8_t { Unpaginated, LeftToRightPaginated, RightToLeftPa
struct Pagination {
using Mode = PaginationMode;

bool operator==(const Pagination& other) const
{
return mode == other.mode && behavesLikeColumns == other.behavesLikeColumns && pageLength == other.pageLength && gap == other.gap;
}
friend bool operator==(const Pagination&, const Pagination&) = default;

Mode mode { Unpaginated };
bool behavesLikeColumns { false };
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/shapes/ShapeInterval.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class ShapeInterval {
set(std::min<T>(x1(), interval.x1()), std::max<T>(x2(), interval.x2()));
}

bool operator==(const ShapeInterval<T>& other) const { return x1() == other.x1() && x2() == other.x2(); }
friend bool operator==(const ShapeInterval<T>&, const ShapeInterval<T>&) = default;

private:
T m_x1;
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/BasicShapes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ void BasicShapeCenterCoordinate::updateComputedLength()
}

struct SVGPathTransformedByteStream {
bool operator==(const SVGPathTransformedByteStream& other) const
{
return other.offset == offset && other.zoom == zoom && other.rawStream == rawStream;
}
friend bool operator==(const SVGPathTransformedByteStream&, const SVGPathTransformedByteStream&) = default;
bool isEmpty() const { return rawStream.isEmpty(); }

Path path() const
Expand Down
8 changes: 3 additions & 5 deletions Source/WebCore/rendering/style/BorderData.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ struct BorderDataRadii {
LengthSize topRight { LengthType::Fixed, LengthType::Fixed };
LengthSize bottomLeft { LengthType::Fixed, LengthType::Fixed };
LengthSize bottomRight { LengthType::Fixed, LengthType::Fixed };

friend bool operator==(const BorderDataRadii&, const BorderDataRadii&) = default;
};

class BorderData {
Expand Down Expand Up @@ -110,11 +112,7 @@ friend class RenderStyle;

bool isEquivalentForPainting(const BorderData& other, bool currentColorDiffers) const;

bool operator==(const BorderData& o) const
{
return m_left == o.m_left && m_right == o.m_right && m_top == o.m_top && m_bottom == o.m_bottom && m_image == o.m_image
&& m_radii.topLeft == o.m_radii.topLeft && m_radii.topRight == o.m_radii.topRight && m_radii.bottomLeft == o.m_radii.bottomLeft && m_radii.bottomRight == o.m_radii.bottomRight;
}
friend bool operator==(const BorderData&, const BorderData&) = default;

const BorderValue& left() const { return m_left; }
const BorderValue& right() const { return m_right; }
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/BorderValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,7 @@ friend class RenderStyle;

bool isVisible() const;

bool operator==(const BorderValue& o) const
{
return m_width == o.m_width && m_style == o.m_style && m_color == o.m_color;
}
friend bool operator==(const BorderValue&, const BorderValue&) = default;

void setColor(const StyleColor& color)
{
Expand Down
9 changes: 2 additions & 7 deletions Source/WebCore/rendering/style/CounterContent.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,12 @@ class CounterContent {
ListStyleType listStyleType() const { return m_listStyle; }
const AtomString& separator() const { return m_separator; }

friend bool operator==(const CounterContent&, const CounterContent&) = default;

private:
AtomString m_identifier;
ListStyleType m_listStyle;
AtomString m_separator;
};

static inline bool operator==(const CounterContent& a, const CounterContent& b)
{
return a.identifier() == b.identifier()
&& a.listStyleType() == b.listStyleType()
&& a.separator() == b.separator();
}

} // namespace WebCore
7 changes: 2 additions & 5 deletions Source/WebCore/rendering/style/CounterDirectives.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,9 @@ struct CounterDirectives {
std::optional<int> resetValue;
std::optional<int> incrementValue;
std::optional<int> setValue;
};

constexpr bool operator==(const CounterDirectives& a, const CounterDirectives& b)
{
return a.incrementValue == b.incrementValue && a.resetValue == b.resetValue && a.setValue == b.setValue;
}
friend constexpr bool operator==(const CounterDirectives&, const CounterDirectives&) = default;
};

struct CounterDirectiveMap {
HashMap<AtomString, CounterDirectives> map;
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/CursorData.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@ class CursorData {
{
}

bool operator==(const CursorData& o) const
{
return m_hotSpot == o.m_hotSpot && m_image == o.m_image;
}
friend bool operator==(const CursorData&, const CursorData&) = default;

StyleImage* image() const { return m_image.get(); }
void setImage(RefPtr<StyleImage>&& image) { m_image = WTFMove(image); }
Expand Down
9 changes: 3 additions & 6 deletions Source/WebCore/rendering/style/FillLayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ struct FillSize {
{
}

friend bool operator==(const FillSize&, const FillSize&) = default;

FillSizeType type;
LengthSize size;
};
Expand All @@ -54,14 +56,9 @@ struct FillRepeatXY {
FillRepeat x { FillRepeat::Repeat };
FillRepeat y { FillRepeat::Repeat };

bool operator==(const FillRepeatXY& other) const { return x == other.x && y == other.y; }
friend bool operator==(const FillRepeatXY&, const FillRepeatXY&) = default;
};

inline bool operator==(const FillSize& a, const FillSize& b)
{
return a.type == b.type && a.size == b.size;
}

class FillLayer : public RefCounted<FillLayer> {
WTF_MAKE_FAST_ALLOCATED;
public:
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/GapLength.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,7 @@ class GapLength {
bool isNormal() const { return m_isNormal; }
const Length& length() const { ASSERT(!m_isNormal); return m_length; }

bool operator==(const GapLength& other) const
{
return m_isNormal == other.m_isNormal && m_length == other.m_length;
}
friend bool operator==(const GapLength&, const GapLength&) = default;

private:
bool m_isNormal;
Expand Down
10 changes: 3 additions & 7 deletions Source/WebCore/rendering/style/GridArea.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ class GridSpan {
return GridSpan(0, 1, TranslatedDefinite);
}

bool operator==(const GridSpan& o) const
{
return m_type == o.m_type && m_startLine == o.m_startLine && m_endLine == o.m_endLine;
}
friend bool operator==(const GridSpan&, const GridSpan&) = default;

unsigned integerSpan() const
{
Expand Down Expand Up @@ -206,8 +203,6 @@ class GridSpan {
int m_startLine;
int m_endLine;
GridSpanType m_type;


};

// This represents a grid area that spans in both rows' and columns' direction.
Expand Down Expand Up @@ -238,7 +233,8 @@ class GridArea {

struct NamedGridAreaMap {
HashMap<String, GridArea> map;

friend bool operator==(const NamedGridAreaMap&, const NamedGridAreaMap&) = default;
};
inline bool operator==(const NamedGridAreaMap& a, const NamedGridAreaMap& b) { return a.map == b.map; }

} // namespace WebCore
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/GridLength.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ class GridLength {

bool isPercentage() const { return m_type == LengthType && m_length.isPercentOrCalculated(); }

bool operator==(const GridLength& o) const
{
return m_type == o.m_type && m_flex == o.m_flex && m_length == o.m_length;
}
friend bool operator==(const GridLength&, const GridLength&) = default;

bool isContentSized() const { return m_type == LengthType && (m_length.isAuto() || m_length.isMinContent() || m_length.isMaxContent()); }
bool isAuto() const { return m_type == LengthType && m_length.isAuto(); }
Expand Down
5 changes: 0 additions & 5 deletions Source/WebCore/rendering/style/GridPosition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,6 @@ int GridPosition::min()
return -max();
}

bool GridPosition::operator==(const GridPosition& other) const
{
return m_type == other.m_type && m_integerPosition == other.m_integerPosition && m_namedGridLine == other.m_namedGridLine;
}

void GridPosition::setMaxPositionForTesting(unsigned maxPosition)
{
gMaxPositionForTesting = static_cast<int>(maxPosition);
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/style/GridPosition.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class GridPosition {
String namedGridLine() const;
WEBCORE_EXPORT int spanPosition() const;

bool operator==(const GridPosition& other) const;
friend bool operator==(const GridPosition&, const GridPosition&) = default;

bool shouldBeResolvedAgainstOppositePosition() const { return isAuto() || isSpan(); }

Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/LineClampValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,7 @@ class LineClampValue {

constexpr bool isNone() const { return m_value == -1; }

constexpr bool operator==(const LineClampValue& o) const
{
return value() == o.value() && isPercentage() == o.isPercentage();
}
friend constexpr bool operator==(const LineClampValue&, const LineClampValue&) = default;

private:
LineClamp m_type;
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/style/ListStyleType.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ struct ListStyleType {
bool isDisc() const;
bool isDisclosureClosed() const;

bool operator==(const ListStyleType& other) const { return type == other.type && identifier == other.identifier; }
friend bool operator==(const ListStyleType&, const ListStyleType&) = default;

Type type { Type::None };
// The identifier is the string when the type is String and is the @counter-style name when the type is CounterStyle.
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/style/NinePieceImage.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ class NinePieceImage {
NinePieceImage(Type = Type::Normal);
NinePieceImage(RefPtr<StyleImage>&&, LengthBox imageSlices, bool fill, LengthBox borderSlices, bool overridesBorderWidths, LengthBox outset, NinePieceImageRule horizontalRule, NinePieceImageRule verticalRule);

bool operator==(const NinePieceImage& other) const { return m_data == other.m_data; }
friend bool operator==(const NinePieceImage&, const NinePieceImage&) = default;

bool hasImage() const { return m_data->image; }
StyleImage* image() const { return m_data->image.get(); }
Expand Down
5 changes: 0 additions & 5 deletions Source/WebCore/rendering/style/OffsetRotation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@

namespace WebCore {

bool OffsetRotation::operator==(const OffsetRotation& o) const
{
return m_hasAuto == o.m_hasAuto && m_angle == o.m_angle;
}

bool OffsetRotation::canBlend(const OffsetRotation& to) const
{
return m_hasAuto == to.hasAuto();
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/style/OffsetRotation.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class OffsetRotation {
bool canBlend(const OffsetRotation&) const;
WEBCORE_EXPORT OffsetRotation blend(const OffsetRotation&, const BlendingContext&) const;

bool operator==(const OffsetRotation&) const;
friend bool operator==(const OffsetRotation&, const OffsetRotation&) = default;

private:
float m_angle { 0 };
Expand Down
5 changes: 1 addition & 4 deletions Source/WebCore/rendering/style/OutlineValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,7 @@ namespace WebCore {
class OutlineValue : public BorderValue {
friend class RenderStyle;
public:
bool operator==(const OutlineValue& o) const
{
return m_width == o.m_width && m_style == o.m_style && m_color == o.m_color && m_offset == o.m_offset && m_isAuto == o.m_isAuto;
}
friend bool operator==(const OutlineValue&, const OutlineValue&) = default;

float offset() const { return m_offset; }
OutlineIsAuto isAuto() const { return static_cast<OutlineIsAuto>(m_isAuto); }
Expand Down
Loading

0 comments on commit c14146d

Please sign in to comment.