pyo3_object_store/
memory.rs1use std::sync::Arc;
2
3use object_store::memory::InMemory;
4use pyo3::intern;
5use pyo3::prelude::*;
6use pyo3::types::PyString;
7
8#[derive(Debug, Clone)]
10#[pyclass(name = "MemoryStore", frozen, subclass)]
11pub struct PyMemoryStore(Arc<InMemory>);
12
13impl AsRef<Arc<InMemory>> for PyMemoryStore {
14 fn as_ref(&self) -> &Arc<InMemory> {
15 &self.0
16 }
17}
18
19impl From<Arc<InMemory>> for PyMemoryStore {
20 fn from(value: Arc<InMemory>) -> Self {
21 Self(value)
22 }
23}
24
25impl<'py> PyMemoryStore {
26 pub fn into_inner(self) -> Arc<InMemory> {
28 self.0
29 }
30
31 fn __repr__(&'py self, py: Python<'py>) -> &'py Bound<'py, PyString> {
32 intern!(py, "MemoryStore")
33 }
34}
35
36#[pymethods]
37impl PyMemoryStore {
38 #[new]
39 fn py_new() -> Self {
40 Self(Arc::new(InMemory::new()))
41 }
42
43 fn __eq__(slf: Py<Self>, other: &Bound<PyAny>) -> bool {
44 slf.is(other)
46 }
47}