#pragma once #include #include #include namespace workerd::api { class DataUrl final { public: static kj::Maybe tryParse(kj::StringPtr url); static kj::Maybe from(const jsg::Url& url); DataUrl(DataUrl&&) = default; DataUrl& operator=(DataUrl&&) = default; KJ_DISALLOW_COPY(DataUrl); const MimeType& getMimeType() const { return mimeType; } kj::ArrayPtr getData() const { return data.asPtr(); } kj::Array releaseData() { return data.releaseAsBytes(); } private: DataUrl(MimeType mimeType, kj::Array data) : mimeType(kj::mv(mimeType)), data(kj::mv(data)) {} MimeType mimeType; kj::Array data; }; } // namespace workerd::api