| 18 | namespace fleece { namespace base64 { |
| 19 | |
| 20 | std::string encode(slice data) { |
| 21 | std::string str; |
| 22 | // 3 bytes -> 4 chars : ceil(data.size / 3) * 4 |
| 23 | size_t strLen = ((data.size + 2) / 3) * 4; |
| 24 | str.resize(strLen); |
| 25 | char *dst = &str[0]; |
| 26 | ::base64::encoder enc; |
| 27 | enc.set_chars_per_line(0); |
| 28 | size_t written = enc.encode(data.buf, data.size, dst); |
| 29 | written += enc.encode_end(dst + written); |
| 30 | assert(written == strLen); |
| 31 | (void)written; // avoid compiler warning in release build when 'assert' is a no-op |
| 32 | return str; |
| 33 | } |
| 34 | |
| 35 | |
| 36 | alloc_slice decode(slice b64) { |
no test coverage detected