pub struct MemoryEngine { /* private fields */ }Expand description
In-memory engine used to prove the storage boundary.
§Examples
use thingd_core::{MemoryEngine, ObjectStore, EventLog, MemoryObject, MemoryEvent};
let mut engine = MemoryEngine::new();
engine.put_object(MemoryObject::new("users", "alice", r#"{"name":"Alice"}"#)).unwrap();
engine.append_event(MemoryEvent::new("audit", "login", r#"{"user":"alice"}"#)).unwrap();
assert_eq!(engine.count_objects().unwrap(), 1);
assert_eq!(engine.count_events().unwrap(), 1);Implementations§
Source§impl MemoryEngine
impl MemoryEngine
Trait Implementations§
Source§impl Default for MemoryEngine
impl Default for MemoryEngine
Source§fn default() -> MemoryEngine
fn default() -> MemoryEngine
Returns the “default value” for a type. Read more
Source§impl EventLog for MemoryEngine
impl EventLog for MemoryEngine
Source§fn append_event(&mut self, event: MemoryEvent) -> ThingdResult<MemoryEvent>
fn append_event(&mut self, event: MemoryEvent) -> ThingdResult<MemoryEvent>
Append an event to a stream. Read more
Source§fn list_events(
&self,
stream: Option<&str>,
options: ListEventsOptions,
) -> ThingdResult<Vec<MemoryEvent>>
fn list_events( &self, stream: Option<&str>, options: ListEventsOptions, ) -> ThingdResult<Vec<MemoryEvent>>
List events, optionally filtered by stream, with pagination. Read more
Source§fn count_events(&self) -> ThingdResult<u64>
fn count_events(&self) -> ThingdResult<u64>
Count total events across all streams. Read more
Source§fn list_streams(&self) -> ThingdResult<Vec<String>>
fn list_streams(&self) -> ThingdResult<Vec<String>>
List all unique stream names. Read more
Source§fn append_events_batch(
&mut self,
events: Vec<MemoryEvent>,
) -> ThingdResult<Vec<MemoryEvent>>
fn append_events_batch( &mut self, events: Vec<MemoryEvent>, ) -> ThingdResult<Vec<MemoryEvent>>
Append multiple events to a stream in a single transaction. Read more
Source§impl LinkStore for MemoryEngine
impl LinkStore for MemoryEngine
Source§fn create_link(&mut self, link: Link) -> ThingdResult<Link>
fn create_link(&mut self, link: Link) -> ThingdResult<Link>
Create a new graph link. Read more
Source§fn delete_link(&mut self, id: &str) -> ThingdResult<bool>
fn delete_link(&mut self, id: &str) -> ThingdResult<bool>
Delete a graph link by id. Read more
Source§fn get_neighbors(
&self,
reference: &str,
direction: LinkDirection,
options: LinkQueryOptions,
) -> ThingdResult<Vec<Link>>
fn get_neighbors( &self, reference: &str, direction: LinkDirection, options: LinkQueryOptions, ) -> ThingdResult<Vec<Link>>
Get neighbors of a reference (outgoing, incoming, or both). Read more
Source§fn count_links(&self) -> ThingdResult<u64>
fn count_links(&self) -> ThingdResult<u64>
Count total links. Read more
Source§impl ObjectStore for MemoryEngine
impl ObjectStore for MemoryEngine
Source§fn put_object(&mut self, object: MemoryObject) -> ThingdResult<MemoryObject>
fn put_object(&mut self, object: MemoryObject) -> ThingdResult<MemoryObject>
Insert or replace an object. Read more
Source§fn get_object(
&self,
collection: &str,
id: &str,
) -> ThingdResult<Option<MemoryObject>>
fn get_object( &self, collection: &str, id: &str, ) -> ThingdResult<Option<MemoryObject>>
Read an object by collection and id. Read more
Source§fn list_objects(
&self,
collections: Option<&[String]>,
options: &ListObjectsOptions,
) -> ThingdResult<Vec<MemoryObject>>
fn list_objects( &self, collections: Option<&[String]>, options: &ListObjectsOptions, ) -> ThingdResult<Vec<MemoryObject>>
List objects in one or more collections, with optional filtering, limit, and offset. Read more
Source§fn delete_object(&mut self, collection: &str, id: &str) -> ThingdResult<bool>
fn delete_object(&mut self, collection: &str, id: &str) -> ThingdResult<bool>
Delete an object by collection and id. Read more
Source§fn count_objects(&self) -> ThingdResult<u64>
fn count_objects(&self) -> ThingdResult<u64>
Count total objects across all collections. Read more
Source§fn list_collections(&self) -> ThingdResult<Vec<String>>
fn list_collections(&self) -> ThingdResult<Vec<String>>
List all unique collection names. Read more
Source§fn put_objects_batch(
&mut self,
objects: Vec<MemoryObject>,
) -> ThingdResult<Vec<MemoryObject>>
fn put_objects_batch( &mut self, objects: Vec<MemoryObject>, ) -> ThingdResult<Vec<MemoryObject>>
Insert or replace multiple objects in a single transaction. Read more
Source§impl QueueStore for MemoryEngine
impl QueueStore for MemoryEngine
Source§fn push_job(&mut self, job: QueueJob) -> ThingdResult<QueueJob>
fn push_job(&mut self, job: QueueJob) -> ThingdResult<QueueJob>
Push a job onto a queue. Read more
Source§fn claim_job_with_options(
&mut self,
queue: &str,
options: QueueClaimOptions,
) -> ThingdResult<Option<QueueJob>>
fn claim_job_with_options( &mut self, queue: &str, options: QueueClaimOptions, ) -> ThingdResult<Option<QueueJob>>
Claim the next ready job from a queue with explicit options. Read more
Source§fn ack_job(&mut self, queue: &str, id: &str) -> ThingdResult<Option<QueueJob>>
fn ack_job(&mut self, queue: &str, id: &str) -> ThingdResult<Option<QueueJob>>
Acknowledge a leased job as completed. Read more
Source§fn nack_job_with_options(
&mut self,
queue: &str,
id: &str,
options: QueueNackOptions,
) -> ThingdResult<Option<QueueJob>>
fn nack_job_with_options( &mut self, queue: &str, id: &str, options: QueueNackOptions, ) -> ThingdResult<Option<QueueJob>>
Reject a leased job for retry or dead-letter routing with explicit options. Read more
Source§fn list_jobs(&self, queue: &str) -> ThingdResult<Vec<QueueJob>>
fn list_jobs(&self, queue: &str) -> ThingdResult<Vec<QueueJob>>
List all jobs in a queue. Read more
Source§fn list_dead_jobs(&self, queue: &str) -> ThingdResult<Vec<QueueJob>>
fn list_dead_jobs(&self, queue: &str) -> ThingdResult<Vec<QueueJob>>
List dead-letter jobs in a queue. Read more
Source§fn list_queues(&self) -> ThingdResult<Vec<String>>
fn list_queues(&self) -> ThingdResult<Vec<String>>
List all unique queue names. Read more
Source§fn count_active_jobs(&self) -> ThingdResult<u64>
fn count_active_jobs(&self) -> ThingdResult<u64>
Count total active jobs across all queues. Read more
Source§fn count_dead_jobs(&self) -> ThingdResult<u64>
fn count_dead_jobs(&self) -> ThingdResult<u64>
Count total dead-letter jobs across all queues. Read more
Source§fn push_jobs_batch(
&mut self,
jobs: Vec<QueueJob>,
) -> ThingdResult<Vec<QueueJob>>
fn push_jobs_batch( &mut self, jobs: Vec<QueueJob>, ) -> ThingdResult<Vec<QueueJob>>
Push multiple jobs onto a queue in a single transaction. Read more
Source§fn claim_job(&mut self, queue: &str) -> ThingdResult<Option<QueueJob>>
fn claim_job(&mut self, queue: &str) -> ThingdResult<Option<QueueJob>>
Claim the next ready job from a queue. Read more
Source§fn claim_and_ack(
&mut self,
queue: &str,
options: QueueClaimOptions,
) -> ThingdResult<Option<QueueJob>>
fn claim_and_ack( &mut self, queue: &str, options: QueueClaimOptions, ) -> ThingdResult<Option<QueueJob>>
Claim and immediately ack a job in a single transaction. Read more
Source§impl Searcher for MemoryEngine
impl Searcher for MemoryEngine
Source§fn search(
&self,
query: &str,
options: SearchOptions,
) -> ThingdResult<Vec<SearchHit>>
fn search( &self, query: &str, options: SearchOptions, ) -> ThingdResult<Vec<SearchHit>>
Search memory objects and event logs by query text. Read more
Auto Trait Implementations§
impl Freeze for MemoryEngine
impl RefUnwindSafe for MemoryEngine
impl Send for MemoryEngine
impl Sync for MemoryEngine
impl Unpin for MemoryEngine
impl UnsafeUnpin for MemoryEngine
impl UnwindSafe for MemoryEngine
Blanket Implementations§
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