Struct QueryHandlerRegistry

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

The QueryHandlerRegistry struct manages the registration and retrieval of query handlers.

This registry maintains a mapping between query types and their corresponding handlers. It is used internally by the QueryBus to dispatch queries to the correct handler.

Implementations§

Source§

impl QueryHandlerRegistry

QueryHandlerRegistry implementation.

Source

pub fn new() -> Self

Creates a new, empty QueryHandlerRegistry.

§Example
use discern::registry::QueryHandlerRegistry;

let registry = QueryHandlerRegistry::new();
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 to be registered for the query type Q.

This method associates a query type with its corresponding handler. When a query of type Q is dispatched, the QueryBus will use the handler registered here.

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

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

Retrieves the query handler for a specific query type.

§Returns

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

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

let handler = registry.get_handler::<MyQuery>();
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.