Skip to main content

QueryHandlerRegistry

Struct QueryHandlerRegistry 

Source
pub struct QueryHandlerRegistry { /* private fields */ }
Expand description

The QueryHandlerRegistry manages associations between query types and their handlers.

It provides a type-safe way to register handlers for specific query types and retrieve them when needed for data query operations.

Implementations§

Source§

impl QueryHandlerRegistry

Implementation for QueryHandlerRegistry.

Source

pub fn new() -> Self

Creates an empty registry for query handlers.

Source

pub fn register<Q: Query>(&mut self, handler: impl QueryHandler<Q> + 'static)

Registers a query handler for a specific query type.

§Arguments
  • handler - The handler implementation to register for query type Q.

When queries of type Q are dispatched, the registered handler will be used.

§Example
let mut registry = QueryHandlerRegistry::new();
registry.register(FindProductQueryHandler);
Source

pub fn get_handler<Q: Query>(&self) -> Option<Box<dyn QueryHandler<Q>>>

Retrieves the handler for a specific query type.

§Returns

An Option containing the query handler if one is registered for type Q, or None if no handler is known for this query type.

§Example
let mut registry = QueryHandlerRegistry::new();
registry.register(FindProductQueryHandler);

let handler = registry.get_handler::<FindProductQuery>();
assert!(handler.is_some());

Trait Implementations§

Source§

impl Debug for QueryHandlerRegistry

Debug implementation for QueryHandlerRegistry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> FormatterResult

Formats the value using the given formatter. Read more
Source§

impl Default for QueryHandlerRegistry

Source§

fn default() -> QueryHandlerRegistry

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.