Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkRecords::Pattern< First, Rest... > Class Template Reference

#include <SkRecordPattern.h>

Public Member Functions

SK_ALWAYS_INLINE int match (SkRecord *record, int i)
 
SK_ALWAYS_INLINE bool search (SkRecord *record, int *begin, int *end)
 
template<typename T >
Tfirst ()
 
template<typename T >
Tsecond ()
 
template<typename T >
Tthird ()
 
template<typename T >
Tfourth ()
 

Detailed Description

template<typename First, typename... Rest>
class SkRecords::Pattern< First, Rest... >

Definition at line 159 of file SkRecordPattern.h.

Member Function Documentation

◆ first()

template<typename First , typename... Rest>
template<typename T >
T * SkRecords::Pattern< First, Rest... >::first ( )
inline

Definition at line 181 of file SkRecordPattern.h.

181{ return fFirst.get(); }

◆ fourth()

template<typename First , typename... Rest>
template<typename T >
T * SkRecords::Pattern< First, Rest... >::fourth ( )
inline

Definition at line 184 of file SkRecordPattern.h.

184{ return fRest.template third<T>(); }

◆ match()

template<typename First , typename... Rest>
SK_ALWAYS_INLINE int SkRecords::Pattern< First, Rest... >::match ( SkRecord record,
int  i 
)
inline

Definition at line 163 of file SkRecordPattern.h.

163 {
164 i = this->matchFirst(&fFirst, record, i);
165 return i > 0 ? fRest.match(record, i) : 0;
166 }

◆ search()

template<typename First , typename... Rest>
SK_ALWAYS_INLINE bool SkRecords::Pattern< First, Rest... >::search ( SkRecord record,
int begin,
int end 
)
inline

Definition at line 170 of file SkRecordPattern.h.

170 {
171 for (*begin = *end; *begin < record->count(); ++(*begin)) {
172 *end = this->match(record, *begin);
173 if (*end != 0) {
174 return true;
175 }
176 }
177 return false;
178 }
int count() const
Definition SkRecord.h:38
SK_ALWAYS_INLINE int match(SkRecord *record, int i)
static const char * begin(const StringSlice &s)
Definition editor.cpp:252
glong glong end

◆ second()

template<typename First , typename... Rest>
template<typename T >
T * SkRecords::Pattern< First, Rest... >::second ( )
inline

Definition at line 182 of file SkRecordPattern.h.

182{ return fRest.template first<T>(); }

◆ third()

template<typename First , typename... Rest>
template<typename T >
T * SkRecords::Pattern< First, Rest... >::third ( )
inline

Definition at line 183 of file SkRecordPattern.h.

183{ return fRest.template second<T>(); }

The documentation for this class was generated from the following file: