#ifndef MediaQueryInputStream_h
#define MediaQueryInputStream_h
#include "wtf/text/WTFString.h"
namespace WebCore {
class MediaQueryInputStream {
WTF_MAKE_NONCOPYABLE(MediaQueryInputStream);
WTF_MAKE_FAST_ALLOCATED;
public:
MediaQueryInputStream(String input);
UChar peek(unsigned);
inline UChar currentInputChar()
{
return peek(0);
}
void advance(unsigned = 1);
void pushBack(UChar);
inline size_t maxLength()
{
return m_string.length() + 1;
}
inline size_t leftChars()
{
return m_string.length() - m_offset;
}
unsigned long long getUInt(unsigned start, unsigned end);
double getDouble(unsigned start, unsigned end);
template<bool characterPredicate(UChar)>
unsigned skipWhilePredicate(unsigned offset)
{
while ((m_offset + offset) < m_string.length() && characterPredicate(m_string[m_offset + offset]))
++offset;
return offset;
}
private:
size_t m_offset;
String m_string;
};
}
#endif