flute 1.11.0

File Delivery over Unidirectional Transport (FLUTE)
Documentation
use pyo3::{exceptions::PyTypeError, prelude::*};
use std::rc::Rc;

#[pyclass(unsendable)]
#[derive(Debug)]
pub struct ObjectWriterBuilder {
    pub inner: Rc<dyn crate::receiver::writer::ObjectWriterBuilder>,
}

#[pymethods]
impl ObjectWriterBuilder {
    #[new]
    fn new(path: &str) -> PyResult<Self> {
        let writer =
            crate::receiver::writer::ObjectWriterFSBuilder::new(std::path::Path::new(path), true)
                .map_err(|e| PyTypeError::new_err(e.0.to_string()))?;
        Ok(Self {
            inner: Rc::new(writer),
        })
    }

    #[staticmethod]
    fn new_buffer() -> Self {
        let writer = crate::receiver::writer::ObjectWriterBufferBuilder::new(true);
        Self {
            inner: Rc::new(writer),
        }
    }
}