Struct screen_13::pool::alias::AliasPool

source ·
pub struct AliasPool<T> { /* private fields */ }
Expand description

A memory-efficient resource wrapper for any Pool type.

The information for each alias request is compared against the actively aliased resources for compatibility. If no acceptable resources are aliased for the information provided a new resource is leased and returned.

All regular leasing and other functionality of the wrapped pool is available through Deref and DerefMut.

NOTE: You must call alias(..) to use resource aliasing as regular lease(..) calls will not inspect or return aliased resources.

§Details

  • Acceleration structures may be larger than requested
  • Buffers may be larger than requested or have additional usage flags
  • Images may have additional usage flags

§Examples

See aliasing.rs

Implementations§

source§

impl<T> AliasPool<T>

source

pub fn new(pool: T) -> Self

Creates a new aliasable wrapper over the given pool.

Trait Implementations§

source§

impl<T> Alias<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>

source§

impl<T> Alias<BufferInfo, Buffer> for AliasPool<T>
where T: Pool<BufferInfo, Buffer>,

source§

fn alias(&mut self, info: BufferInfo) -> Result<Arc<Lease<Buffer>>, DriverError>

Aliases a resource.
source§

impl<T> Alias<ImageInfo, Image> for AliasPool<T>
where T: Pool<ImageInfo, Image>,

source§

fn alias(&mut self, info: ImageInfo) -> Result<Arc<Lease<Image>>, DriverError>

Aliases a resource.
source§

impl<T> Deref for AliasPool<T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<T> DerefMut for AliasPool<T>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<T> Pool<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>

source§

impl<T> Pool<BufferInfo, Buffer> for AliasPool<T>
where T: Pool<BufferInfo, Buffer>,

source§

fn lease(&mut self, info: BufferInfo) -> Result<Lease<Buffer>, DriverError>

Lease a resource.
source§

impl<T> Pool<ImageInfo, Image> for AliasPool<T>
where T: Pool<ImageInfo, Image>,

source§

fn lease(&mut self, info: ImageInfo) -> Result<Lease<Image>, DriverError>

Lease a resource.

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for AliasPool<T>
where T: RefUnwindSafe,

§

impl<T> Send for AliasPool<T>
where T: Send,

§

impl<T> Sync for AliasPool<T>
where T: Sync,

§

impl<T> Unpin for AliasPool<T>
where T: Unpin,

§

impl<T> UnwindSafe for AliasPool<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Alias<AccelerationStructureInfoBuilder, AccelerationStructure> for T

source§

impl<T> Alias<BufferInfoBuilder, Buffer> for T
where T: Alias<BufferInfo, Buffer>,

source§

fn alias( &mut self, builder: BufferInfoBuilder ) -> Result<Arc<Lease<Buffer>>, DriverError>

Aliases a resource.
source§

impl<T> Alias<ImageInfoBuilder, Image> for T
where T: Alias<ImageInfo, Image>,

source§

fn alias( &mut self, builder: ImageInfoBuilder ) -> Result<Arc<Lease<Image>>, DriverError>

Aliases a resource.
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
§

impl<T> Downcast for T
where T: 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.
§

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.
§

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.
§

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.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pool<AccelerationStructureInfoBuilder, AccelerationStructure> for T

source§

impl<T> Pool<BufferInfoBuilder, Buffer> for T
where T: Pool<BufferInfo, Buffer>,

source§

fn lease( &mut self, builder: BufferInfoBuilder ) -> Result<Lease<Buffer>, DriverError>

Lease a resource.
source§

impl<T> Pool<ImageInfoBuilder, Image> for T
where T: Pool<ImageInfo, Image>,

source§

fn lease( &mut self, builder: ImageInfoBuilder ) -> Result<Lease<Image>, DriverError>

Lease a resource.
source§

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

§

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>,

§

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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more