flute 1.11.0

File Delivery over Unidirectional Transport (FLUTE)
Documentation
use pyo3::prelude::*;

#[pyclass]
#[derive(Debug)]
pub struct Config(pub crate::receiver::Config);

#[pymethods]
impl Config {
    #[new]
    fn new() -> Self {
        Self {
            0: crate::receiver::Config {
                ..Default::default()
            },
        }
    }

    #[getter]
    fn get_max_objects_error(&self) -> PyResult<usize> {
        Ok(self.0.max_objects_error)
    }

    #[setter]
    fn set_max_objects_error(&mut self, value: usize) -> PyResult<()> {
        self.0.max_objects_error = value;
        Ok(())
    }

    #[getter]
    fn get_session_timeout_ms(&self) -> PyResult<Option<u64>> {
        Ok(self
            .0
            .session_timeout
            .map(|timeout| timeout.as_millis() as u64))
    }

    #[setter]
    fn set_session_timeout_ms(&mut self, value: Option<u64>) -> PyResult<()> {
        self.0.session_timeout = value.map(|timeout| std::time::Duration::from_millis(timeout));
        Ok(())
    }

    #[getter]
    fn get_object_timeout_ms(&self) -> PyResult<Option<u64>> {
        Ok(self
            .0
            .object_timeout
            .map(|timeout| timeout.as_millis() as u64))
    }

    #[setter]
    fn set_object_timeout_ms(&mut self, value: Option<u64>) -> PyResult<()> {
        self.0.object_timeout = value.map(|timeout| std::time::Duration::from_millis(timeout));
        Ok(())
    }
}