|
1 | | -use std::{any, future::poll_fn, io, task::Poll}; |
| 1 | +use std::{any, future::poll_fn, io, mem, slice, task::Poll}; |
2 | 2 |
|
3 | | -use compio_buf::{BufResult, IoBuf, IoBufMut, SetBufInit}; |
| 3 | +use compio_buf::{BufResult, IoBuf, IoBufMut, SetLen}; |
4 | 4 | use compio_io::{AsyncRead, AsyncWrite}; |
5 | | -use ntex_bytes::{Buf, BufMut, BytesMut}; |
| 5 | +use ntex_bytes::{BufMut, BytesMut}; |
6 | 6 | use ntex_io::{Handle, IoContext, IoStream, IoTaskStatus, Readiness, types}; |
7 | 7 | use ntex_util::future::{Either, select}; |
8 | 8 |
|
@@ -37,31 +37,26 @@ impl Handle for HandleWrapper { |
37 | 37 |
|
38 | 38 | struct CompioBuf(BytesMut); |
39 | 39 |
|
40 | | -unsafe impl IoBuf for CompioBuf { |
| 40 | +impl IoBuf for CompioBuf { |
41 | 41 | #[inline] |
42 | | - fn as_buf_ptr(&self) -> *const u8 { |
43 | | - self.0.chunk().as_ptr() |
44 | | - } |
45 | | - |
46 | | - #[inline] |
47 | | - fn buf_len(&self) -> usize { |
48 | | - self.0.len() |
49 | | - } |
50 | | - |
51 | | - #[inline] |
52 | | - fn buf_capacity(&self) -> usize { |
53 | | - self.0.remaining_mut() |
| 42 | + fn as_init(&self) -> &[u8] { |
| 43 | + &self.0 |
54 | 44 | } |
55 | 45 | } |
56 | 46 |
|
57 | | -unsafe impl IoBufMut for CompioBuf { |
58 | | - fn as_buf_mut_ptr(&mut self) -> *mut u8 { |
59 | | - self.0.chunk_mut().as_mut_ptr() |
| 47 | +impl IoBufMut for CompioBuf { |
| 48 | + fn as_uninit(&mut self) -> &mut [mem::MaybeUninit<u8>] { |
| 49 | + unsafe { |
| 50 | + slice::from_raw_parts_mut( |
| 51 | + self.0.chunk_mut().as_mut_ptr() as *mut _, |
| 52 | + self.0.remaining_mut(), |
| 53 | + ) |
| 54 | + } |
60 | 55 | } |
61 | 56 | } |
62 | 57 |
|
63 | | -impl SetBufInit for CompioBuf { |
64 | | - unsafe fn set_buf_init(&mut self, len: usize) { |
| 58 | +impl SetLen for CompioBuf { |
| 59 | + unsafe fn set_len(&mut self, len: usize) { |
65 | 60 | unsafe { |
66 | 61 | self.0.set_len(len + self.0.len()); |
67 | 62 | } |
|
0 commit comments