use std::io::Write; use std::net::TcpStream; use std::sync::{Arc, RwLock}; use anyhow::Result; use bank::bank::Bank; use crate::commands::Command; use crate::protocol; pub struct GetAccountNrs; impl Command for GetAccountNrs { fn execute(&self, bank: Arc>, _: &[u8], mut stream: &TcpStream) -> Result { info!("getting account numbers..."); let bank = bank.read().unwrap(); let nrs: Vec = bank.account_numbers() .into_iter() .collect(); let written = stream.write(&protocol::account_nrs(&nrs))?; Ok(written) } }