use crate::{concat_string, mime::MimeExt, percent_encoding::encode_as_percent_escaped};
pub fn encode_as_shortest_dataurl(mime_ext: &MimeExt, buf: &[u8]) -> String {
let base64 = crate::base64::to_standard_base64(buf);
let mime_ext_string = mime_ext.to_string();
let base64_url = concat_string!("data:", mime_ext_string, ";base64,", base64);
match encode_as_percent_escaped(buf)
.map(|encoded| concat_string!("data:", mime_ext_string, ",", encoded))
{
Some(percent_url) if percent_url.len() < base64_url.len() => percent_url,
_ => base64_url,
}
}