bitpanda_csv/trade/
in_out.rs

1//! # InOut
2//!
3//! The direction of a transaction
4
5/// Defines the direction of a trade on bitpanda
6#[derive(Debug, Deserialize, Copy, Clone, Eq, PartialEq, Hash)]
7#[serde(rename_all = "lowercase")]
8pub enum InOut {
9    Incoming,
10    Outgoing,
11}
12
13#[cfg(test)]
14mod test {
15
16    use super::*;
17
18    use pretty_assertions::assert_eq;
19    use std::io::Cursor;
20
21    #[test]
22    fn should_decode_in_out() {
23        let csv = r#"id,in_out
240,incoming
251,outgoing
26"#;
27        let buffer = Cursor::new(csv);
28        let mut reader = csv::Reader::from_reader(buffer);
29        let mut fakes: Vec<InOut> = Vec::new();
30        for result in reader.deserialize::<Fake>() {
31            fakes.push(result.expect("failed to decode").in_out);
32        }
33        assert_eq!(fakes, vec![InOut::Incoming, InOut::Outgoing,]);
34    }
35
36    #[derive(Deserialize)]
37    #[allow(dead_code)]
38    struct Fake {
39        id: u64,
40        in_out: InOut,
41    }
42}