+TITLE: Notas de desarrollo.

* TODO ValuePair * TODO Point * TODO Equipment * TODO DT_GEN Format ** TODO Data

Es la serie de funciones que construyen aleatoriamente datos a solicitud.

Creación de comando que permite una entrada y deserializarla. Sea un stream o de un archivo.

** Lectura de archivos

En stream.rs -> read_file se implementa una función sencilla que toma un archivo completo y lo deserializa directamente para convertirlo en un array de Data.

Esto es solo para un archivo de tipo json.

+begin_src rust

pub fn readfile>( path: P) -> Result, Box> { // open file if exists path let file = File::open(path)?; // set file to buffer let reader = BufReader::new(file); // read the json contents let jsondata = serdejson::fromreader(reader)?; // Return Data Ok(json_data) }

+end_src

** Lectura de stream y entrega de vector

Si el origen del dato viene de un stream, entonces se usa read_io que toma la serie de valores (o de un archivo no json)

+begin_src rust

pub fn readioflag: &String, print: bool) -> Result, Box> { let mut lines: Vec = vec![]; let mut dataset: Vec = vec![]; for value in input.lines() { let line = value?; if line.asstr().trim() == endflag { let newvalue = lines.join(""); let newdata = Data::jsonloads(&newvalue); if print { println!("{}", newdata); } dataset.push(newdata); lines.clear(); } else { if !line.trim().is_empty() { lines.push(line); } } } Ok(dataset) }

+end_src

** TODO Lectura de stream y entrega a stream

En este caso, en vez de lograr un acumulador, tomar el Data convertido enviarlo mediante un stream con rasgo Write.

Por ejemplo, podría necesitar enviarlo por una cola a un stream de socket, entonces crear un módulo que tome el dato, lo procese y envíe a otra parte, si es que lo necesita. También podría utilizarse para enviar a un proceso concurrente o funcionalidad atómica separada.