SVGPathStringSource.h [plain text]
#pragma once
#include "SVGPathSource.h"
#include <wtf/text/StringParsingBuffer.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class SVGPathStringSource final : public SVGPathSource {
public:
explicit SVGPathStringSource(const String&);
private:
bool hasMoreData() const final;
bool moveToNextToken() final;
SVGPathSegType nextCommand(SVGPathSegType previousCommand) final;
Optional<SVGPathSegType> parseSVGSegmentType() final;
Optional<MoveToSegment> parseMoveToSegment() final;
Optional<LineToSegment> parseLineToSegment() final;
Optional<LineToHorizontalSegment> parseLineToHorizontalSegment() final;
Optional<LineToVerticalSegment> parseLineToVerticalSegment() final;
Optional<CurveToCubicSegment> parseCurveToCubicSegment() final;
Optional<CurveToCubicSmoothSegment> parseCurveToCubicSmoothSegment() final;
Optional<CurveToQuadraticSegment> parseCurveToQuadraticSegment() final;
Optional<CurveToQuadraticSmoothSegment> parseCurveToQuadraticSmoothSegment() final;
Optional<ArcToSegment> parseArcToSegment() final;
template<typename Function> decltype(auto) parse(Function&&);
String m_string;
bool m_is8BitSource;
union {
StringParsingBuffer<LChar> m_buffer8;
StringParsingBuffer<UChar> m_buffer16;
};
};
}