pub struct BackendEndpointAllocator { /* private fields */ }Expand description
Allocates unguessable backend IPC endpoints for one broker namespace.
Implementations§
Source§impl BackendEndpointAllocator
impl BackendEndpointAllocator
Sourcepub fn new(
user_sid_hash: impl Into<String>,
namespace_id: impl Into<String>,
) -> Self
pub fn new( user_sid_hash: impl Into<String>, namespace_id: impl Into<String>, ) -> Self
Create an allocator for one per-user broker namespace.
Sourcepub fn with_max_attempts(self, max_attempts: usize) -> Self
pub fn with_max_attempts(self, max_attempts: usize) -> Self
Override the collision retry bound.
Sourcepub fn reserve_path(&mut self, path: impl Into<String>)
pub fn reserve_path(&mut self, path: impl Into<String>)
Reserve a path that should not be returned by future allocations.
Sourcepub fn allocate(&mut self) -> Result<Endpoint, BackendEndpointAllocatorError>
pub fn allocate(&mut self) -> Result<Endpoint, BackendEndpointAllocatorError>
Allocate one endpoint using operating-system randomness.
Sourcepub fn allocate_with_random128<F>(
&mut self,
next_random128: F,
) -> Result<Endpoint, BackendEndpointAllocatorError>
pub fn allocate_with_random128<F>( &mut self, next_random128: F, ) -> Result<Endpoint, BackendEndpointAllocatorError>
Allocate one endpoint from a deterministic random source.
Tests use this to force collisions without weakening the production randomness path.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BackendEndpointAllocator
impl RefUnwindSafe for BackendEndpointAllocator
impl Send for BackendEndpointAllocator
impl Sync for BackendEndpointAllocator
impl Unpin for BackendEndpointAllocator
impl UnsafeUnpin for BackendEndpointAllocator
impl UnwindSafe for BackendEndpointAllocator
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more