pub struct DatabaseRouter { /* private fields */ }Expand description
Maps compound router keys to concrete DatabaseBackend implementations.
Keys look like inmemory_mem:default or acme_vault:billing — see crate::router_key().
§Examples
use std::sync::Arc;
use valence_backend_mem::{InMemoryBackend, ENGINE_ID};
use valence_core::{router_key, DatabaseRouter};
let mut router = DatabaseRouter::new();
let key = router_key("default", ENGINE_ID);
router.register(key.clone(), Arc::new(InMemoryBackend::new()));
assert_eq!(router.resolve(&key).unwrap().engine_id(), ENGINE_ID);Implementations§
Source§impl DatabaseRouter
impl DatabaseRouter
pub fn new() -> Self
pub fn register( &mut self, key: impl Into<String>, backend: Arc<dyn DatabaseBackend>, )
pub fn register_runtime( &self, key: impl Into<String>, backend: Arc<dyn DatabaseBackend>, ) -> Result<()>
pub fn resolve(&self, key: &str) -> Result<Arc<dyn DatabaseBackend>>
pub fn len(&self) -> Result<usize>
pub fn is_empty(&self) -> Result<bool>
Trait Implementations§
Source§impl Debug for DatabaseRouter
impl Debug for DatabaseRouter
Source§impl Default for DatabaseRouter
impl Default for DatabaseRouter
Source§fn default() -> DatabaseRouter
fn default() -> DatabaseRouter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for DatabaseRouter
impl RefUnwindSafe for DatabaseRouter
impl Send for DatabaseRouter
impl Sync for DatabaseRouter
impl Unpin for DatabaseRouter
impl UnsafeUnpin for DatabaseRouter
impl UnwindSafe for DatabaseRouter
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