Lines Matching defs:U
78 pub struct LockedBy<T: ?Sized, U: ?Sized> {
79 owner: *const U,
84 unsafe impl<T: ?Sized + Send, U: ?Sized> Send for LockedBy<T, U> {}
92 unsafe impl<T: ?Sized + Send, U: ?Sized> Sync for LockedBy<T, U> {}
94 impl<T, U> LockedBy<T, U> {
102 pub fn new<B: Backend>(owner: &Lock<U, B>, data: T) -> Self {
104 size_of::<Lock<U, B>>() > 0,
114 impl<T: ?Sized, U> LockedBy<T, U> {
118 /// `U` cannot be a zero-sized type (ZST) because there are ways to get an `&U` that matches
125 pub fn access<'a>(&'a self, owner: &'a U) -> &'a T
130 size_of::<U>() > 0,
131 "`U` cannot be a ZST because `owner` wouldn't be unique"
147 /// `U` cannot be a zero-sized type (ZST) because there are ways to get an `&mut U` that
157 pub fn access_mut<'a>(&'a self, owner: &'a mut U) -> &'a mut T {
159 size_of::<U>() > 0,
160 "`U` cannot be a ZST because `owner` wouldn't be unique"