feat: add sans-io TFTP protocol crate

This commit is contained in:
2025-12-21 11:14:59 +01:00
parent d537ad4ee2
commit 890443fdc2
11 changed files with 677 additions and 0 deletions

View 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
}
}