pub struct GenericPhotonBackend { /* private fields */ }Expand description
Unified backend — all storage adapters install this wrapping their port.
Implementations§
Source§impl GenericPhotonBackend
impl GenericPhotonBackend
Sourcepub fn new(port: Arc<dyn StoragePort>, registry: TopicRegistry) -> Self
pub fn new(port: Arc<dyn StoragePort>, registry: TopicRegistry) -> Self
Wrap an existing storage port and topic registry.
Sourcepub const fn capabilities(&self) -> BackendCapabilities
pub const fn capabilities(&self) -> BackendCapabilities
Capabilities for contract tests and host introspection.
Sourcepub fn install_mem(ctx: BackendContext) -> Result<Arc<dyn PhotonBackend>>
pub fn install_mem(ctx: BackendContext) -> Result<Arc<dyn PhotonBackend>>
Sourcepub fn install_with_port(
ctx: BackendContext,
port: Arc<dyn StoragePort>,
) -> Result<Arc<dyn PhotonBackend>>
pub fn install_with_port( ctx: BackendContext, port: Arc<dyn StoragePort>, ) -> Result<Arc<dyn PhotonBackend>>
Install a custom storage port from builder context.
§Errors
Returns an error if the operation fails.
Trait Implementations§
Source§impl PhotonBackend for GenericPhotonBackend
impl PhotonBackend for GenericPhotonBackend
Source§fn telemetry_label(&self) -> &'static str
fn telemetry_label(&self) -> &'static str
Stable telemetry label for ops metrics (e.g.
"mem", "nats").Source§fn capabilities(&self) -> BackendCapabilities
fn capabilities(&self) -> BackendCapabilities
Adapter capabilities (replay window, get-by-id support, …).
Source§fn publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
topic_name: &'life1 str,
topic_key: Option<&'life2 str>,
actor_json: Value,
payload_json: Value,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
topic_name: &'life1 str,
topic_key: Option<&'life2 str>,
actor_json: Value,
payload_json: Value,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Append an event and return its event id. Read more
Source§fn subscribe(
&self,
topic_name: String,
topic_key_filter: Option<String>,
after_seq: Option<i64>,
) -> Pin<Box<dyn Stream<Item = Result<Event>> + Send>>
fn subscribe( &self, topic_name: String, topic_key_filter: Option<String>, after_seq: Option<i64>, ) -> Pin<Box<dyn Stream<Item = Result<Event>> + Send>>
Stream events for a topic partition, optionally replaying after
after_seq. Read moreSource§fn get_event<'life0, 'life1, 'async_trait>(
&'life0 self,
event_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Event>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_event<'life0, 'life1, 'async_trait>(
&'life0 self,
event_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Event>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load a single event by id. Read more
Source§fn registry(&self) -> &TopicRegistry
fn registry(&self) -> &TopicRegistry
Inventory-discovered topic descriptors.
Source§fn get_checkpoint_seq<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
topic_name: &'life2 str,
topic_key: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Option<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get_checkpoint_seq<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
topic_name: &'life2 str,
topic_key: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Option<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Load the last committed checkpoint seq for a subscription partition. Read more
Source§fn set_checkpoint<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
topic_name: &'life2 str,
topic_key: Option<&'life3 str>,
last_seq: i64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn set_checkpoint<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
topic_name: &'life2 str,
topic_key: Option<&'life3 str>,
last_seq: i64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Persist the high-water checkpoint seq for a subscription partition. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for GenericPhotonBackend
impl !UnwindSafe for GenericPhotonBackend
impl Freeze for GenericPhotonBackend
impl Send for GenericPhotonBackend
impl Sync for GenericPhotonBackend
impl Unpin for GenericPhotonBackend
impl UnsafeUnpin for GenericPhotonBackend
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