pub trait RingKernelHandler<M, R>: GpuKernel{
// Required method
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut RingContext<'_>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided methods
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>
where M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait { ... }
}Expand description
Trait for ring (persistent actor) kernels.
Ring kernels are persistent GPU actors with 100-500ns message latency. State resides permanently in GPU memory.
§Enterprise Features (0.3.1)
handle_secure()- Handle messages with security context
§Type Parameters
M: Request message typeR: Response message type
Required Methods§
Provided Methods§
Sourcefn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Initialize the kernel state.
Called once when the kernel is first activated.
Sourcefn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the kernel is being shut down.
Use this to clean up resources.
Sourcefn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>where
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>where
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Handle a message with security context.
Provides authentication and tenant isolation for message handling. Use this for operations that require authorization checks.
§Arguments
ctx- Secure ring context with auth infomsg- The incoming message
§Returns
The response message or an error.
§Default Implementation
Delegates to handle() ignoring security context. Override to
implement authorization checks.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".