Module gmt_dos_clients::once

source ·
Expand description

§Once Per Read

A client that wraps the data it has read into an Option and writes it a as Some(...) once and as None until the next read.

§Examples

use gmt_dos_clients::once::Once;
use interface::{UniqueIdentifier, Read, Write};

enum O {}
impl UniqueIdentifier for O {
    type DataType = Vec<usize>;
}
enum OO {}
impl UniqueIdentifier for OO {
    type DataType = Option<Vec<usize>>;
}
let mut once = Once::<O>::new();
let data = vec![1,2,3];
<Once<O> as Read<O>>::read(&mut once, data.clone().into());
let written_data = <Once<O> as Write<OO>>::write(&mut once).unwrap();
assert_eq!(*written_data, Some(data));
let written_data = <Once<O> as Write<OO>>::write(&mut once).unwrap();
assert_eq!(*written_data, None);

Structs§