Size: a a a

2020 November 11

А⚙

Антон ⚙️ in Rust Beginners
Stas Hehera
а как можно например в готовый Vec<u8> добавить первые 4 u8?
А если их меньше четырёх?
источник

SH

Stas Hehera in Rust Beginners
типо смотрите я напимер получил готовый Vec<u8> но мне нужно добавить хедер в 4 байта, тоесть добавить в начало 4 u8 елемента в даный вектор, как это можно зделать?
источник

А⚙

Антон ⚙️ in Rust Beginners
Stas Hehera
типо смотрите я напимер получил готовый Vec<u8> но мне нужно добавить хедер в 4 байта, тоесть добавить в начало 4 u8 елемента в даный вектор, как это можно зделать?
Где у тебя эти четыре значения?
источник

SH

Stas Hehera in Rust Beginners
ну могу использовать что угодно, я думал зделать структура, например
Header { field1: u8, field2: u8, field3: u8, field4: u8, }
impl Header { fn to_vec() -> Vec<u8> { vec![] } }
источник

YK

Yevhen Kazmin in Rust Beginners
pub trait Game {
 type State;
 type Action;
 fn valid_actions(state: &Self::State) -> std::iter::Iterator<Item=Self::Action>;
}
что мне написать перед Iterator чтоб работало?
в интернете примеры с impl, но оно ошибку дает, предлагает dyn, а я не хочу динамики вообще
источник

r

red75prime in Rust Beginners
Stas Hehera
типо смотрите я напимер получил готовый Vec<u8> но мне нужно добавить хедер в 4 байта, тоесть добавить в начало 4 u8 елемента в даный вектор, как это можно зделать?
Вставка в начало вектора - это дорогая операция. Лучше создать вектор с 4-мя элементами и дописать в него остальное
источник

SH

Stas Hehera in Rust Beginners
а потом брать создавать
let result = Vec::new();
result.extend(some_header.to_vec());
и уже когда получаю еще Vec<u8>
опять делать
result.extend(vetor);
источник

r

red75prime in Rust Beginners
Yevhen Kazmin
pub trait Game {
 type State;
 type Action;
 fn valid_actions(state: &Self::State) -> std::iter::Iterator<Item=Self::Action>;
}
что мне написать перед Iterator чтоб работало?
в интернете примеры с impl, но оно ошибку дает, предлагает dyn, а я не хочу динамики вообще
источник

YK

Yevhen Kazmin in Rust Beginners
и что мне даст тип сумма?
источник

r

red75prime in Rust Beginners
Yevhen Kazmin
и что мне даст тип сумма?
Возможно вернуть разные реализации итератора
источник

YK

Yevhen Kazmin in Rust Beginners
я хочу в трейте возвращать итератор, а в имплементации генерировать его с помощью iter::from_fn
источник

YK

Yevhen Kazmin in Rust Beginners
red75prime
Возможно вернуть разные реализации итератора
можно, но мне нужна generic версия, чтоб во время компиляции подставилось то, что я использую (офк во время компиляции типы известны)
источник

r

red75prime in Rust Beginners
Yevhen Kazmin
я хочу в трейте возвращать итератор, а в имплементации генерировать его с помощью iter::from_fn
А. Это экзистенциальные типы в трейтах нужны. В стабильном расте ещё нет.
источник

MB

Mikail Bagishov in Rust Beginners
Stas Hehera
типо смотрите я напимер получил готовый Vec<u8> но мне нужно добавить хедер в 4 байта, тоесть добавить в начало 4 u8 елемента в даный вектор, как это можно зделать?
добавь в конец и позови .rotate_left(4)
источник

MK

Marat Khayrutdinov in Rust Beginners
Stas Hehera
типо смотрите я напимер получил готовый Vec<u8> но мне нужно добавить хедер в 4 байта, тоесть добавить в начало 4 u8 елемента в даный вектор, как это можно зделать?
Использовать VecDeque не вариант?
источник

АГ

Алексей Герасимов... in Rust Beginners
Yevhen Kazmin
pub trait Game {
 type State;
 type Action;
 fn valid_actions(state: &Self::State) -> std::iter::Iterator<Item=Self::Action>;
}
что мне написать перед Iterator чтоб работало?
в интернете примеры с impl, но оно ошибку дает, предлагает dyn, а я не хочу динамики вообще
если каждая реализация может разные типы типы возвращать, то добавить в трейт ассоциированный тип с ограничением и возвращать его
trait Game {
 type I: Iterator<Item=Self::Action>;
 fn valid_actions(…) -> Self::I;
}
источник

YK

Yevhen Kazmin in Rust Beginners
Алексей Герасимов
если каждая реализация может разные типы типы возвращать, то добавить в трейт ассоциированный тип с ограничением и возвращать его
trait Game {
 type I: Iterator<Item=Self::Action>;
 fn valid_actions(…) -> Self::I;
}
я не могу прописать тип FromFn потом, там generic функции нужен
источник

r

red75prime in Rust Beginners
Yevhen Kazmin
я не могу прописать тип FromFn потом, там generic функции нужен
Использовать свободные функции вместо трейта. В Game::valid_actions всё-равно &self нет.
источник

A

Adatan in Rust Beginners
что за ключевое слово такое default
источник

JM

John Meow in Rust Beginners
Adatan
что за ключевое слово такое default
По-моему его нет в расте
источник