172 похожих чатов

Подскажите плиз с выбором типа. У меня есть DTO-шка, которая

описывает запрос/ответ стороннего сервиса.
В ней есть свойство-массив (и даже не одно)

Какой тип лучше использовать для такого массива? Vec<T>/Box<[T]>/&[T]?
Хочется уйти от кучи параметров по лайфтаймам, так как я не уверен, сколько этот объект должен жить.
Сейчас использую Box<[T]>, но вижу потенциальную проблему в том, что массив сначала создаётся на стеке, а потом копируется в кучу. Думал что как-то можно Vec превратить в Box<[T]>, чтобы обойти эту проблему, но не нашёл такого способа.

Скорее всего сейчас буду переходить на Vec, так как уже и так использую HashMap, но не уверен до конца

10 ответов

40 просмотров

у вектора есть метод into_boxed_slice

Vabka- Автор вопроса
Mikail Bagishov
у вектора есть метод into_boxed_slice

капец. А название достаточно очевидное получается

Vabka- Автор вопроса
Mikail Bagishov
у вектора есть метод into_boxed_slice

А на счёт практики, как лучше? DTO_шка в целом иммутабельная у меня - после создания никак не планируется дальше работать с ней - только сериализовать и отправить

Vabka- Автор вопроса

Ну по поводу практики меня больше беспокоит поддерживаемость и лёгкость кодирования, ибо это у меня первый более/менее полноценный сервис на расте и я хз как мои решения скажутся в будущем. А стек мне уже порвало)

Vabka
Ну по поводу практики меня больше беспокоит поддер...

Ну, в данном конкретном случае я согласен с @MikailBag .

Vabka- Автор вопроса
Mikola Summer Duck
Ну, в данном конкретном случае я согласен с @Mikai...

Тоесть особо разницы нет - что Vec, что Box<[T]> будет ок?

Vabka
Тоесть особо разницы нет - что Vec, что Box<[T]> б...

Box<[T]> хорош тем что ты его случайно не ресайзнешь

Vabka
Тоесть особо разницы нет - что Vec, что Box<[T]> б...

Разница есть, как Михаил заметил, но я не думаю что в твоём случае она важна.

Vabka
Тоесть особо разницы нет - что Vec, что Box<[T]> б...

Если ты собираешься его расширять юзай век, если нет то бокс от слайса. Исходи из потребностей семантики а не того как там что лежит

Vabka- Автор вопроса
Αλεχ Zhukovsky
Если ты собираешься его расширять юзай век, если н...

Ну примерно так я и рассуждал - штука один раз собирается в заранее известный размер и больше никак не трогается

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта