8#ifndef SkSVGAttributeParser_DEFINED
9#define SkSVGAttributeParser_DEFINED
35 result.set(std::move(parsedValue));
44 if (!strcmp(
name, expectedName)) {
45 return parse<T>(
value);
51 template <
typename PropertyT>
55 if (strcmp(
name, expectedName) != 0) {
59 if (!strcmp(
value,
"inherit")) {
64 auto pr = parse<typename PropertyT::ValueT>(
value);
77 : fSelf(
self), fCurPos(
self->fCurPos) {}
81 fSelf->fCurPos = this->fCurPos;
85 void clear() { fSelf =
nullptr; }
90 RestoreCurPos(
const RestoreCurPos&) =
delete;
91 RestoreCurPos&
operator=(
const RestoreCurPos&) =
delete;
95 void*
operator new(size_t) =
delete;
96 void*
operator new(size_t,
void*) =
delete;
101 template <
typename F>
102 bool advanceWhile(
F func);
104 bool matchStringToken(
const char* token,
const char** newPos =
nullptr)
const;
105 bool matchHexToken(
const char** newPos)
const;
108 bool parseEOSToken();
109 bool parseSepToken();
110 bool parseCommaWspToken();
111 bool parseExpectedStringToken(
const char*);
113 bool parseInt32Token(int32_t*);
117 bool parseNamedColorToken(
SkColor*);
118 bool parseHexColorToken(
SkColor*);
119 bool parseColorComponentScalarToken(int32_t*);
120 bool parseColorComponentIntegralToken(int32_t*);
121 bool parseColorComponentFractionalToken(int32_t*);
122 bool parseColorComponentToken(int32_t*);
123 bool parseColorToken(
SkColor*);
124 bool parseRGBColorToken(
SkColor*);
125 bool parseRGBAColorToken(
SkColor*);
132 bool parseTranslateToken(
SkMatrix*);
140 template <
typename Func,
typename T>
141 bool parseParenthesized(
const char*
prefix, Func,
T*
result);
143 template <
typename T>
144 bool parseList(std::vector<T>*);
146 template <
typename T,
typename TArray>
147 bool parseEnumMap(
const TArray& arr,
T*
result) {
149 if (this->parseExpectedStringToken(
std::get<0>(arr[
i]))) {
SkNoncopyable & operator=(SkNoncopyable &&)=default
bool parsePreserveAspectRatio(SkSVGPreserveAspectRatio *)
static ParseResult< PropertyT > parseProperty(const char *expectedName, const char *name, const char *value)
static ParseResult< T > parse(const char *expectedName, const char *name, const char *value)
bool parseInteger(SkSVGIntegerType *)
static ParseResult< T > parse(const char *value)
bool parseViewBox(SkSVGViewBoxType *)
SkSVGAttributeParser(const char[])
bool parse(SkSVGIntegerType *v)
std::vector< SkString > Vars
DEF_SWITCHES_START aot vmservice shared library name
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
const myers::Point & get< 1 >(const myers::Segment &s)
const myers::Point & get< 0 >(const myers::Segment &s)