описывает запрос/ответ стороннего сервиса.
В ней есть свойство-массив (и даже не одно)
Какой тип лучше использовать для такого массива? Vec<T>/Box<[T]>/&[T]?
Хочется уйти от кучи параметров по лайфтаймам, так как я не уверен, сколько этот объект должен жить.
Сейчас использую Box<[T]>, но вижу потенциальную проблему в том, что массив сначала создаётся на стеке, а потом копируется в кучу. Думал что как-то можно Vec превратить в Box<[T]>, чтобы обойти эту проблему, но не нашёл такого способа.
Скорее всего сейчас буду переходить на Vec, так как уже и так использую HashMap, но не уверен до конца
у вектора есть метод into_boxed_slice
капец. А название достаточно очевидное получается
А на счёт практики, как лучше? DTO_шка в целом иммутабельная у меня - после создания никак не планируется дальше работать с ней - только сериализовать и отправить
Ну по поводу практики меня больше беспокоит поддерживаемость и лёгкость кодирования, ибо это у меня первый более/менее полноценный сервис на расте и я хз как мои решения скажутся в будущем. А стек мне уже порвало)
Ну, в данном конкретном случае я согласен с @MikailBag .
Тоесть особо разницы нет - что Vec, что Box<[T]> будет ок?
Box<[T]> хорош тем что ты его случайно не ресайзнешь
Разница есть, как Михаил заметил, но я не думаю что в твоём случае она важна.
Если ты собираешься его расширять юзай век, если нет то бокс от слайса. Исходи из потребностей семантики а не того как там что лежит
Ну примерно так я и рассуждал - штука один раз собирается в заранее известный размер и больше никак не трогается
Обсуждают сегодня