#ifndef WavTool_Base64_h
#define WavTool_Base64_h

#include <JuceHeader.h>

inline std::string convertToBase64(const std::string_view & data) {
    juce::MemoryOutputStream mos;
    juce::Base64::convertToBase64(mos, data.data(), data.size());
    return mos.toUTF8().toStdString();
}

inline std::string convertFromBase64(const std::string & data) {
    juce::MemoryOutputStream mos;
    juce::Base64::convertFromBase64(mos, data.c_str()); // c_str forces null termination
    return std::string((char*)mos.getData(), (size_t)mos.getDataSize());
}

inline std::string convertFromBase64(const juce::StringRef data) {
    juce::MemoryOutputStream mos;
    juce::Base64::convertFromBase64(mos, data);
    return std::string((char*)mos.getData(), (size_t)mos.getDataSize());
}

#endif /* WavTool_Base64_h */
