#ifndef Base64_h
#define Base64_h
#include <wtf/Vector.h>
#include <wtf/text/CString.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
enum Base64DecodePolicy { FailOnInvalidCharacter, IgnoreWhitespace, IgnoreInvalidCharacters };
void base64Encode(const char*, unsigned, Vector<char>&, bool insertLFs = false);
void base64Encode(const Vector<char>&, Vector<char>&, bool insertLFs = false);
void base64Encode(const CString&, Vector<char>&, bool insertLFs = false);
String base64Encode(const char*, unsigned, bool insertLFs = false);
String base64Encode(const Vector<char>&, bool insertLFs = false);
String base64Encode(const CString&, bool insertLFs = false);
bool base64Decode(const String&, Vector<char>&, Base64DecodePolicy = FailOnInvalidCharacter);
bool base64Decode(const Vector<char>&, Vector<char>&, Base64DecodePolicy = FailOnInvalidCharacter);
bool base64Decode(const char*, unsigned, Vector<char>&, Base64DecodePolicy = FailOnInvalidCharacter);
inline void base64Encode(const Vector<char>& in, Vector<char>& out, bool insertLFs)
{
base64Encode(in.data(), in.size(), out, insertLFs);
}
inline void base64Encode(const CString& in, Vector<char>& out, bool insertLFs)
{
base64Encode(in.data(), in.length(), out, insertLFs);
}
inline String base64Encode(const Vector<char>& in, bool insertLFs)
{
return base64Encode(in.data(), in.size(), insertLFs);
}
inline String base64Encode(const CString& in, bool insertLFs)
{
return base64Encode(in.data(), in.length(), insertLFs);
}
}
#endif // Base64_h