без реалокации? Или хотя бы ридер. Помнится мне что вроде что то делал без костылей но не помню как
fn flatten(self) -> Flatten<Self> ?
Подойдет для поведения итератора. Слайс тут никак не получить? Нужно реализовать метод возвращающий слайс
у тебя не получится из Vec<Vec<u8>> сделать просто &[u8] (без аллокаций) даже если данные идут попорядку, ты не забывай что Vec еще носит в себе usize+capacity_usize+сами_данные_на_которые_ты_надеешься
даже если ты выдумаешь предварительно сделать &[&[u8]] то у тебя всеравно в каждом останется usize
Спасибо. Буду пилить костыль.
возвращай итератор) а кому надо - из итератора сделают слайс
Да у меня как бы массив буферов заполняется асинхронно и его нужно дальше передать как единый буфер. Так как буферы большие хотел избежать релокацию.
ты хочешь trait read да?.. ты по идее можешь сделать итератор в итераторе.. так как есть такой impl Read for &[u8] а вообще это все напоминает tcp/udp тоесть его эффективную версию с IoSliceMut и любое другое..
Нужна реализация hyper::body::Buf в принциме можно реализовать его из массива буферов, но тут прийдется рефселы прикрутить
я делаю функцию с итератором по вектору, внутри итератора if на ключ и возврат слайса. Но я начинающий, возможно это не оптимально.
А не лучше будет хранить без вложености? Но предоставить интерфейс для эмуляции вложиности. При этом хранить зоны слайсов в виде вектора пар?
Как то очень заумно. ну я как бы планировал еще на деструктор поцепить возврат буферов в пул. Сам чанк будет передаватся во владение ридеру.
Обсуждают сегодня