1use base64::engine::general_purpose as base64_decoder;
3use base64::Engine;
4
5use crate::{Error, Result};
6
7pub fn try_buf_parse_base64(uri: &str, byte_length: usize) -> Result<Option<Vec<u8>>> {
14 let Some(data) = uri.strip_prefix("data:application/octet-stream;base64,") else {
15 return Ok(None);
16 };
17 let bytes = base64_decoder::STANDARD.decode(data)?;
18 if bytes.len() < byte_length {
19 Err(Error::BufferTooShort)
20 } else {
21 Ok(Some(bytes))
22 }
23}
24
25pub fn buf_parse_fail<T>(_uri: &str, _byte_length: usize) -> Result<T> {
28 Err(Error::BufferRead)
29}