MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / base64_encode

Function base64_encode

nodedb/src/engine/document/store/extract.rs:162–184  ·  view source on GitHub ↗
(data: &[u8])

Source from the content-addressed store, hash-verified

160}
161
162fn base64_encode(data: &[u8]) -> String {
163 const CHARS: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
164 let mut result = String::with_capacity(data.len().div_ceil(3) * 4);
165 for chunk in data.chunks(3) {
166 let b0 = chunk[0] as u32;
167 let b1 = if chunk.len() > 1 { chunk[1] as u32 } else { 0 };
168 let b2 = if chunk.len() > 2 { chunk[2] as u32 } else { 0 };
169 let n = (b0 << 16) | (b1 << 8) | b2;
170 result.push(CHARS[((n >> 18) & 0x3F) as usize] as char);
171 result.push(CHARS[((n >> 12) & 0x3F) as usize] as char);
172 if chunk.len() > 1 {
173 result.push(CHARS[((n >> 6) & 0x3F) as usize] as char);
174 } else {
175 result.push('=');
176 }
177 if chunk.len() > 2 {
178 result.push(CHARS[(n & 0x3F) as usize] as char);
179 } else {
180 result.push('=');
181 }
182 }
183 result
184}
185
186#[cfg(test)]
187mod tests {

Callers 1

rmpv_to_jsonFunction · 0.70

Calls 2

lenMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected