feat: add sans-io TFTP protocol crate
This commit is contained in:
44
crates/pfs-tftp-sync/src/client.rs
Normal file
44
crates/pfs-tftp-sync/src/client.rs
Normal file
@@ -0,0 +1,44 @@
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
use std::net::SocketAddr;
|
||||
use std::time::Duration;
|
||||
|
||||
/// Configuration for a synchronous TFTP client.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ClientConfig {
|
||||
pub timeout: Duration,
|
||||
pub retries: u32,
|
||||
}
|
||||
|
||||
impl Default for ClientConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
timeout: Duration::from_secs(5),
|
||||
retries: 5,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A synchronous TFTP client.
|
||||
#[derive(Debug)]
|
||||
pub struct Client {
|
||||
pub(crate) server: SocketAddr,
|
||||
pub(crate) config: ClientConfig,
|
||||
}
|
||||
|
||||
impl Client {
|
||||
#[must_use]
|
||||
pub fn new(server: SocketAddr, config: ClientConfig) -> Self {
|
||||
Self { server, config }
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn server(&self) -> SocketAddr {
|
||||
self.server
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn config(&self) -> &ClientConfig {
|
||||
&self.config
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user