start with write

This commit is contained in:
nora 2022-02-12 22:31:58 +01:00
parent 83778ac2c9
commit cb3710cd3f
6 changed files with 1337 additions and 699 deletions

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,7 @@ use std::collections::HashMap;
mod generated;
mod parse_helper;
mod write_helper;
pub type Table = HashMap<String, FieldValue>;

View file

@ -0,0 +1,47 @@
use crate::classes::generated::{
Bit, Long, Longlong, Longstr, Octet, Short, Shortstr, Table, Timestamp,
};
use crate::error::TransError;
use std::io;
use std::io::Write;
fn error(e: io::Error) -> TransError {
TransError::Other(e.into())
}
pub fn octet<W: Write>(value: Octet, writer: &mut W) -> Result<(), TransError> {
writer.write_all(&[value])?;
Ok(())
}
pub fn short<W: Write>(value: Short, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn long<W: Write>(value: Long, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn longlong<W: Write>(value: Longlong, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn bit<W: Write>(value: Vec<Bit>, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn shortstr<W: Write>(value: Shortstr, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn longstr<W: Write>(value: Longstr, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn timestamp<W: Write>(value: Timestamp, writer: &mut W) -> Result<(), TransError> {
todo!()
}
pub fn table<W: Write>(value: Table, writer: &mut W) -> Result<(), TransError> {
todo!()
}