From 7e1cade440763e5af9aa185e861cb4d951ca0c9a Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Sat, 9 Jul 2022 21:47:26 +0200 Subject: Use Default trait for options --- src/lib.rs | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ba633a5..94de64d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,9 +29,10 @@ pub enum Opcode { OACK = 0x06, } -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] #[repr(u8)] pub enum Mode { + #[default] OCTET, NETASCII, } @@ -43,21 +44,23 @@ pub struct TftpOptions { tsize: u64, } -#[derive(Clone, Copy)] +impl Default for TftpOptions { + fn default() -> Self { + TftpOptions { + blksize: 512, + timeout: Duration::from_secs(3), + tsize: 0, + } + } +} + +#[derive(Clone, Copy, Default)] pub struct Tftp { options: TftpOptions, mode: Mode, progress_cb: Option, } -fn default_options() -> TftpOptions { - TftpOptions { - blksize: 512, - timeout: Duration::from_secs(3), - tsize: 0, - } -} - fn netascii_to_octet(buf: &[u8], previous_cr: bool) -> (Vec, bool) { let mut out = Vec::with_capacity(buf.len()); @@ -98,16 +101,6 @@ fn blksize2(size: usize) -> usize { } -impl Default for Tftp { - fn default() -> Tftp { - Tftp { - options: default_options(), - mode: Mode::OCTET, - progress_cb: None, - } - } -} - impl Tftp { pub fn new() -> Tftp { Default::default() @@ -298,7 +291,7 @@ impl Tftp { } pub fn init_tftp_options(&mut self, sock: &UdpSocket, options: &mut HashMap) -> Result<(), io::Error> { - self.options = default_options(); + self.options = Default::default(); options.retain(|key, val| { let val = val.to_lowercase(); -- cgit v1.2.3