use std::io::Result;
use std::pin::Pin;
use std::task::{Context, Poll};
use futures_lite::AsyncWrite;
use crate::external::write_access_handle;
impl AsyncWrite for crate::File {
fn poll_write(
mut self: Pin<&mut Self>,
_cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize>> {
let written = write_access_handle(&self.access, buf, self.offset);
self.offset += written;
Poll::Ready(Ok(written as usize))
}
fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Result<()>> {
Poll::Ready(self.access.flush().map_err(crate::from_js_error))
}
fn poll_close(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Result<()>> {
self.access.close();
Poll::Ready(Ok(()))
}
}