based64/string.rs
1//! API that returns `String`
2
3extern crate alloc;
4use alloc::string::String;
5
6use super::{Codec, vec, assert_valid_character_table};
7
8///Encoding function returns string.
9///
10///Requires feature `alloc`.
11///
12///# Arguments
13///- `src` - Input to encode;
14///
15///# Panics
16///
17///In case of required size to be too big or table contains non-ASCII characters
18#[inline]
19pub fn encode(table: &[u8; 64], src: &[u8]) -> String {
20 //User must supply valid table for string conversion to be valid
21 assert!(assert_valid_character_table(table));
22
23 let result = vec::encode(table, src);
24
25 unsafe {
26 String::from_utf8_unchecked(result)
27 }
28}
29
30impl<'a> Codec<'a> {
31 ///Encoding function returns string.
32 ///
33 ///Requires feature `alloc`.
34 ///
35 ///# Arguments
36 ///- `src` - Input to encode;
37 ///
38 ///# Panics
39 ///
40 ///In case of required size to be too big or table contains non-ASCII characters
41 #[inline]
42 pub fn encode_into_string(&self, src: &[u8]) -> String {
43 let result = vec::encode(self.table, src);
44
45 unsafe {
46 String::from_utf8_unchecked(result)
47 }
48 }
49}