pub struct CompositionPolicy<R = SequentialReadPolicy, W = OptimisticParallelWritePolicy>where
R: CompositionReadPolicy,
W: CompositionWritePolicy,{ /* private fields */ }Expand description
Bundle of read, write, and refill policies for CompositionBackend.
This struct provides a builder pattern for configuring all three policy types together, making it easy to create and reuse policy configurations.
§Example
ⓘ
use hitbox_backend::composition::{CompositionPolicy, CompositionBackend};
use hitbox_backend::composition::policy::{RaceReadPolicy, SequentialWritePolicy, RefillPolicy};
let policy = CompositionPolicy::new()
.read(RaceReadPolicy::new())
.write(SequentialWritePolicy::new())
.refill(RefillPolicy::Always);
let backend = CompositionBackend::new(l1, l2)
.with_policy(policy);Implementations§
Source§impl<R, W> CompositionPolicy<R, W>where
R: CompositionReadPolicy,
W: CompositionWritePolicy,
impl<R, W> CompositionPolicy<R, W>where
R: CompositionReadPolicy,
W: CompositionWritePolicy,
Sourcepub fn read<NewR: CompositionReadPolicy>(
self,
read: NewR,
) -> CompositionPolicy<NewR, W>
pub fn read<NewR: CompositionReadPolicy>( self, read: NewR, ) -> CompositionPolicy<NewR, W>
Sourcepub fn write<NewW: CompositionWritePolicy>(
self,
write: NewW,
) -> CompositionPolicy<R, NewW>
pub fn write<NewW: CompositionWritePolicy>( self, write: NewW, ) -> CompositionPolicy<R, NewW>
Sourcepub fn refill(self, refill: RefillPolicy) -> CompositionPolicy<R, W>
pub fn refill(self, refill: RefillPolicy) -> CompositionPolicy<R, W>
Sourcepub fn read_policy(&self) -> &R
pub fn read_policy(&self) -> &R
Get a reference to the read policy.
Sourcepub fn write_policy(&self) -> &W
pub fn write_policy(&self) -> &W
Get a reference to the write policy.
Sourcepub fn refill_policy(&self) -> &RefillPolicy
pub fn refill_policy(&self) -> &RefillPolicy
Get a reference to the refill policy.
Trait Implementations§
Source§impl<R, W> Clone for CompositionPolicy<R, W>
impl<R, W> Clone for CompositionPolicy<R, W>
Source§fn clone(&self) -> CompositionPolicy<R, W>
fn clone(&self) -> CompositionPolicy<R, W>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<R, W> Debug for CompositionPolicy<R, W>
impl<R, W> Debug for CompositionPolicy<R, W>
Auto Trait Implementations§
impl<R, W> Freeze for CompositionPolicy<R, W>
impl<R, W> RefUnwindSafe for CompositionPolicy<R, W>where
R: RefUnwindSafe,
W: RefUnwindSafe,
impl<R, W> Send for CompositionPolicy<R, W>
impl<R, W> Sync for CompositionPolicy<R, W>
impl<R, W> Unpin for CompositionPolicy<R, W>
impl<R, W> UnwindSafe for CompositionPolicy<R, W>where
R: UnwindSafe,
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.