haystack_core/codecs/zinc/
mod.rs1mod encoder;
4mod parser;
5
6pub use encoder::{encode_grid, encode_meta, encode_scalar, escape_str};
7pub use parser::{ZincParser, decode_grid, decode_scalar};
8
9use super::{Codec, CodecError};
10use crate::data::HGrid;
11use crate::kinds::Kind;
12
13pub struct ZincCodec;
15
16impl Codec for ZincCodec {
17 fn mime_type(&self) -> &str {
18 "text/zinc"
19 }
20
21 fn encode_grid(&self, grid: &HGrid) -> Result<String, CodecError> {
22 encode_grid(grid)
23 }
24
25 fn decode_grid(&self, input: &str) -> Result<HGrid, CodecError> {
26 decode_grid(input)
27 }
28
29 fn encode_scalar(&self, val: &Kind) -> Result<String, CodecError> {
30 encode_scalar(val)
31 }
32
33 fn decode_scalar(&self, input: &str) -> Result<Kind, CodecError> {
34 decode_scalar(input)
35 }
36}