pub struct BufferIdentity { /* private fields */ }Expand description
Unique identity for a tensor’s underlying buffer.
Created fresh on every buffer allocation or import. The id is a cache
key, kind records what system key (if any) it was derived from, and the
guard is an Arc<()> whose weak references allow downstream caches to
detect when the buffer has been dropped.
Implementations§
Source§impl BufferIdentity
impl BufferIdentity
Sourcepub fn derived(kind: IdentityKind, key: u64) -> Self
pub fn derived(kind: IdentityKind, key: u64) -> Self
Derive an identity from a key the operating system already guarantees.
Deliberately NOT a counter: two independently-linked copies of this crate must derive the same id for the same buffer, or a consumer’s import cache misses every frame. See the design spec, “The core finding”.
Sourcepub fn kind(&self) -> IdentityKind
pub fn kind(&self) -> IdentityKind
What kind of system key this identity was derived from.
Trait Implementations§
Source§impl Clone for BufferIdentity
impl Clone for BufferIdentity
Auto Trait Implementations§
impl Freeze for BufferIdentity
impl RefUnwindSafe for BufferIdentity
impl Send for BufferIdentity
impl Sync for BufferIdentity
impl Unpin for BufferIdentity
impl UnsafeUnpin for BufferIdentity
impl UnwindSafe for BufferIdentity
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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