glossa_shared/decode/slice.rs
1use super::*;
2
3pub fn decode_slice<T>(slice: &[u8]) -> ResolverResult<(T, usize)>
4where
5 T: serde::de::DeserializeOwned,
6{
7 bincode::serde::decode_from_slice(slice, bincode_std_cfg()) //
8 .map_err(Into::into)
9}
10
11/// decodes single L10n data (e.g., read("en-GB.bincode") )
12///
13/// returns:
14///
15/// ```ignore
16/// Ok(
17/// Map<(map_name, key), value>,
18/// read_bytes_size
19/// )
20/// ```
21pub fn decode_single_data_to_map(
22 slice: &[u8],
23) -> ResolverResult<(L10nFlattenMap, usize)> {
24 decode_slice(slice)
25}
26
27/// decodes **all_in_one** L10n data (e.g., read("all.bincode") )
28///
29///
30/// returns:
31///
32/// ```ignore
33/// Ok(
34/// Map< LangID, Map<(map_name, key), value> >,
35/// read_bytes_size
36/// )
37/// ```
38pub fn decode_to_maps(slice: &[u8]) -> ResolverResult<(L10nMaps, usize)> {
39 decode_slice(slice)
40}
41
42/// decodes single L10n DSL data (e.g., read("en-GB.ast.bincode") )
43///
44/// returns:
45///
46/// ```ignore
47/// Ok(
48/// Map<map_name, Resolver>,
49/// read_bytes_size
50/// )
51/// ```
52pub fn decode_single_data_to_dsl_map(
53 slice: &[u8],
54) -> ResolverResult<(L10nDSLMap, usize)> {
55 decode_slice(slice)
56}
57
58/// decodes **all_in_one** DSL L10n data (e.g., read("all.ast.bincode") )
59///
60///
61/// returns:
62///
63/// ```ignore
64/// Ok(
65/// Map< LangID, Map<map_name, Resolver> >,
66/// read_bytes_size
67/// )
68/// ```
69pub fn decode_to_dsl_maps(slice: &[u8]) -> ResolverResult<(DSLMaps, usize)> {
70 decode_slice(slice)
71}