#include "config.h"
#include "SVGZoomAndPan.h"
#include <wtf/text/StringConcatenateNumbers.h>
#include <wtf/text/StringParsingBuffer.h>
namespace WebCore {
template<typename CharacterType> static constexpr CharacterType disable[] = { 'd', 'i', 's', 'a', 'b', 'l', 'e' };
template<typename CharacterType> static constexpr CharacterType magnify[] = { 'm', 'a', 'g', 'n', 'i', 'f', 'y' };
template<typename CharacterType> static Optional<SVGZoomAndPanType> parseZoomAndPanGeneric(StringParsingBuffer<CharacterType>& buffer)
{
if (skipCharactersExactly(buffer, disable<CharacterType>))
return SVGZoomAndPanDisable;
if (skipCharactersExactly(buffer, magnify<CharacterType>))
return SVGZoomAndPanMagnify;
return WTF::nullopt;
}
Optional<SVGZoomAndPanType> SVGZoomAndPan::parseZoomAndPan(StringParsingBuffer<LChar>& buffer)
{
return parseZoomAndPanGeneric(buffer);
}
Optional<SVGZoomAndPanType> SVGZoomAndPan::parseZoomAndPan(StringParsingBuffer<UChar>& buffer)
{
return parseZoomAndPanGeneric(buffer);
}
void SVGZoomAndPan::parseAttribute(const QualifiedName& attributeName, const AtomString& value)
{
if (attributeName != SVGNames::zoomAndPanAttr)
return;
m_zoomAndPan = SVGPropertyTraits<SVGZoomAndPanType>::fromString(value);
}
}