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}