pub struct UserMemoryWriter<'a> { /* private fields */ }Expand description
Helper to write out data to a task’s memory sequentially.
Implementations§
Source§impl<'a> UserMemoryWriter<'a>
impl<'a> UserMemoryWriter<'a>
Sourcepub fn new(task: &'a Task, addr: UserAddress) -> Self
pub fn new(task: &'a Task, addr: UserAddress) -> Self
Constructs a new UserMemoryWriter to write to task’s memory at addr.
Sourcepub fn write(&mut self, data: &[u8]) -> UserAddress
pub fn write(&mut self, data: &[u8]) -> UserAddress
Writes all of data to the current address in the task’s address space, incrementing the
current address by the size of data. Returns the address at which the data starts.
Panics on failure.
Sourcepub fn write_object<T: IntoBytes + Immutable>(
&mut self,
object: &T,
) -> UserAddress
pub fn write_object<T: IntoBytes + Immutable>( &mut self, object: &T, ) -> UserAddress
Writes object to the current address in the task’s address space, incrementing the
current address by the size of object. Returns the address at which the data starts.
Panics on failure.
Sourcepub fn current_address(&self) -> UserAddress
pub fn current_address(&self) -> UserAddress
Returns the current address at which data will be next written.
Auto Trait Implementations§
impl<'a> Freeze for UserMemoryWriter<'a>
impl<'a> !RefUnwindSafe for UserMemoryWriter<'a>
impl<'a> Send for UserMemoryWriter<'a>
impl<'a> Sync for UserMemoryWriter<'a>
impl<'a> Unpin for UserMemoryWriter<'a>
impl<'a> !UnwindSafe for UserMemoryWriter<'a>
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, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
Converts the given service transport handle of type
T to [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 moreSource§impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
type Error = <U as TryFromExt<T>>::Error
§fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
Tries to perform the conversion.