Implement Base64 read.

This commit is contained in:
2022-03-26 13:40:28 -04:00
parent 7a1c62c47e
commit b490b67d55
5 changed files with 126 additions and 19 deletions

View File

@@ -1,3 +1,4 @@
#![allow(dead_code)]
use crate::bytes::Bytes;
use std::str;
@@ -33,6 +34,25 @@ impl BytesBase64 {
)
}
pub fn to_bytes(&self) -> Bytes {
Bytes(vec![])
}
pub fn from_base64(s: &str) -> BytesBase64 {
let mut r: Vec<u8> = Vec::with_capacity(s.len());
for c in s.chars() {
match c {
'A'..='Z' => r.push((c as u8) - ('A' as u8)),
'a'..='z' => r.push((c as u8) - ('a' as u8) + 26),
'0'..='9' => r.push((c as u8) - ('0' as u8) + 52),
'+' => r.push(62),
'/' => r.push(63),
_ => (),
}
}
BytesBase64(r)
}
pub fn to_string(&self) -> String {
let BytesBase64(digits) = self;
let mut r: Vec<u8> = digits