pub struct FrozenBuffer {
pub inner: Bytes,
}Expand description
An immutable buffer for reading bytes data.
The FrozenBuffer struct provides a read-only interface to byte data. Once created,
the buffer’s content cannot be modified, but it supports various reading operations
including line-by-line reading and copying data to external buffers. It implements
Python’s buffer protocol for zero-copy access from Python code.
§Examples
from monarch._rust_bindings.monarch_hyperactor.buffers import Buffer
# Create and populate a buffer
buffer = Buffer()
buffer.write(b"Hello\nWorld\n")
# Freeze it for reading
frozen = buffer.freeze()
# Read all content
content = frozen.read()
print(content) # b"Hello\nWorld\n"
# Read line by line (create a new frozen buffer)
buffer.write(b"Line 1\nLine 2\n")
frozen = buffer.freeze()
line1 = frozen.readline()
line2 = frozen.readline()Fields§
§inner: BytesTrait Implementations§
Source§impl Clone for FrozenBuffer
impl Clone for FrozenBuffer
Source§fn clone(&self) -> FrozenBuffer
fn clone(&self) -> FrozenBuffer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for FrozenBuffer
impl Default for FrozenBuffer
Source§fn default() -> FrozenBuffer
fn default() -> FrozenBuffer
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for FrozenBuffer
impl<'de> Deserialize<'de> for FrozenBuffer
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&'static [u8]> for FrozenBuffer
impl From<&'static [u8]> for FrozenBuffer
Source§impl From<FrozenBuffer> for Part
impl From<FrozenBuffer> for Part
Source§fn from(buf: FrozenBuffer) -> Self
fn from(buf: FrozenBuffer) -> Self
Converts to this type from the input type.
Source§impl<'py> IntoPyObject<'py> for FrozenBuffer
impl<'py> IntoPyObject<'py> for FrozenBuffer
Source§type Target = FrozenBuffer
type Target = FrozenBuffer
The Python output type
Source§type Output = Bound<'py, <FrozenBuffer as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <FrozenBuffer as IntoPyObject<'py>>::Target>
The smart pointer type to use. Read more
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Performs the conversion.
Source§impl Named for FrozenBuffer
impl Named for FrozenBuffer
Source§fn typename() -> &'static str
fn typename() -> &'static str
The globally unique type name for the type.
This should typically be the fully qualified Rust name of the type.
Source§fn typehash() -> u64
fn typehash() -> u64
A globally unique hash for this type.
TODO: actually enforce perfect hashing
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
The TypeId for this type. TypeIds are unique only within a binary,
and should not be used for global identification.
Source§fn port() -> u64
fn port() -> u64
The globally unique port for this type. Typed ports are in the range
of 1<<63..1<<64-1.
Source§impl PartialEq for FrozenBuffer
impl PartialEq for FrozenBuffer
Source§impl PyClass for FrozenBuffer
impl PyClass for FrozenBuffer
Source§impl PyClassBaseType for FrozenBuffer
impl PyClassBaseType for FrozenBuffer
type LayoutAsBase = PyClassObject<FrozenBuffer>
type BaseNativeType = <FrozenBuffer as PyClassImpl>::BaseNativeType
type Initializer = PyClassInitializer<FrozenBuffer>
type PyClassMutability = <FrozenBuffer as PyClassImpl>::PyClassMutability
Source§impl PyClassImpl for FrozenBuffer
impl PyClassImpl for FrozenBuffer
Source§const IS_BASETYPE: bool = true
const IS_BASETYPE: bool = true
#[pyclass(subclass)]
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
#[pyclass(immutable_type)]
Source§const RAW_DOC: &'static CStr = /// An immutable buffer for reading bytes data.
///
/// The `FrozenBuffer` struct provides a read-only interface to byte data. Once created,
/// the buffer's content cannot be modified, but it supports various reading operations
/// including line-by-line reading and copying data to external buffers. It implements
/// Python's buffer protocol for zero-copy access from Python code.
///
/// # Examples
///
/// ```python
/// from monarch._rust_bindings.monarch_hyperactor.buffers import Buffer
///
/// # Create and populate a buffer
/// buffer = Buffer()
/// buffer.write(b"Hello\nWorld\n")
///
/// # Freeze it for reading
/// frozen = buffer.freeze()
///
/// # Read all content
/// content = frozen.read()
/// print(content) # b"Hello\nWorld\n"
///
/// # Read line by line (create a new frozen buffer)
/// buffer.write(b"Line 1\nLine 2\n")
/// frozen = buffer.freeze()
/// line1 = frozen.readline()
/// line2 = frozen.readline()
/// ```
const RAW_DOC: &'static CStr = /// An immutable buffer for reading bytes data. /// /// The `FrozenBuffer` struct provides a read-only interface to byte data. Once created, /// the buffer's content cannot be modified, but it supports various reading operations /// including line-by-line reading and copying data to external buffers. It implements /// Python's buffer protocol for zero-copy access from Python code. /// /// # Examples /// /// ```python /// from monarch._rust_bindings.monarch_hyperactor.buffers import Buffer /// /// # Create and populate a buffer /// buffer = Buffer() /// buffer.write(b"Hello\nWorld\n") /// /// # Freeze it for reading /// frozen = buffer.freeze() /// /// # Read all content /// content = frozen.read() /// print(content) # b"Hello\nWorld\n" /// /// # Read line by line (create a new frozen buffer) /// buffer.write(b"Line 1\nLine 2\n") /// frozen = buffer.freeze() /// line1 = frozen.readline() /// line2 = frozen.readline() /// ```
Docstring for the class provided on the struct or enum. Read more
Source§const DOC: &'static CStr
const DOC: &'static CStr
Fully rendered class doc, including the
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<FrozenBuffer>
type ThreadChecker = SendablePyClass<FrozenBuffer>
This handles following two situations: Read more
type Inventory = Pyo3MethodsInventoryForFrozenBuffer
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder FrozenBuffer
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder FrozenBuffer
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut FrozenBuffer
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut FrozenBuffer
Source§impl PyTypeInfo for FrozenBuffer
impl PyTypeInfo for FrozenBuffer
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type.Source§impl Serialize for FrozenBuffer
impl Serialize for FrozenBuffer
impl DerefToPyAny for FrozenBuffer
impl StructuralPartialEq for FrozenBuffer
Auto Trait Implementations§
impl !Freeze for FrozenBuffer
impl RefUnwindSafe for FrozenBuffer
impl Send for FrozenBuffer
impl Sync for FrozenBuffer
impl Unpin for FrozenBuffer
impl UnwindSafe for FrozenBuffer
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
Source§type State = T
type State = T
The type of the state that is saved. The state can be serialized and deserialized
from persistent storage.
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
§fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
§fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoPyObjectBox for Twhere
T: for<'py> IntoPyObject<'py> + Send,
impl<T> IntoPyObjectBox for Twhere
T: for<'py> IntoPyObject<'py> + Send,
fn into_py_object(self: Box<T>, py: Python<'_>) -> Result<Py<PyAny>, PyErr>
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
Converts
self into a Python object. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.