Вопросы по теме 'borrow-checker'

Невозможно выйти из заимствованного содержимого и шаблона Builder
Я только изучаю Rust. Я пытаюсь создать строительную структуру для моей игровой структуры. Вот код: struct Input { keys_pressed: HashMap<VirtualKeyCode, bool>, } pub struct GameBuilder { settings: GameSettings, input: Input, }...
891 просмотров
schedule 14.05.2024

Я неправильно реализую IntoIterator для ссылки на реализацию LazyList или это ошибка Rust?
При реализации версии LazyList (неизменяемый лениво-вычисляемый запоминающийся односвязный список, очень похожий на списки Haskell) я столкнулся с проблемой реализации IntoIterator , заключающейся в том, что код не удаляет ссылку, когда я думаю, что...
646 просмотров

Повторное использование привязки в закрытии Rust
Я пытаюсь создать Vec<(Point, f64)> : let grid_size = 5; let points_in_grid = (0..grid_size).flat_map(|x| { (0..grid_size) .map(|y| Point::new(f64::from(x), f64::from(y))) .collect::<Vec<Point>>() }); let...
212 просмотров
schedule 03.10.2022

не может выйти из заимствованного контента для Vec, но не для u64
Следующий код выдает ошибку: struct Foo { a: Vec<u64>, } impl Foo { fn change_a(&mut self, new_a: Vec<u64>) { self.a = *choose(&self.a, &new_a); } } fn choose<'a>(x: &'a Vec<u64>, y:...
304 просмотров
schedule 10.03.2024

Понимание заимствований в матче с опцией
У меня есть простой парсер, который можно преобразовать в нечто вроде этого: use std::str::Chars; use std::iter::Peekable; struct Parser<'a> { input: Peekable<Chars<'a>>, } impl<'a> Parser<'a> { fn...
38 просмотров
schedule 14.05.2024

Вернуть ссылку вместе с объектом, на который указывает ссылка, в Rust
При использовании Future в Rust обычно передается право собственности на объект (например, соединение, обработанные данные и т. д.) между последовательными этапами обработки, реализованными с помощью лямбда-выражений. Я понимаю концепцию и сделал...
531 просмотров
schedule 16.02.2024

Как интерпретировать неизменяемые ссылки на изменяемые типы в Rust?
Кажется, я не могу ничего изменить, если в моей цепочке разыменования есть какая-либо неизменная ссылка. Образец: fn main() { let mut x = 42; let y: &mut i32 = &mut x; // first layer let z: &&mut i32 = &y; //...
911 просмотров

Как добиться инкапсуляции полей структуры без заимствования структуры в целом
Мой вопрос уже несколько обсуждался здесь . Проблема в том, что я хочу получить доступ к нескольким отдельным полям структуры, чтобы использовать их, но я не хочу работать с полями напрямую. Вместо этого я хотел бы инкапсулировать доступ к ним,...
137 просмотров
schedule 15.06.2024

Как вернуть ссылку в аргумент функции Rc‹RefCell‹››?
Это минимальная воспроизводимая ошибка, взятая из интерпретатора, который я пишу. Насколько я понимаю, я должен иметь возможность вернуть ссылку на поле структуры в RefCell, так как RefCell имеет достаточное время жизни. Однако компилятор говорит...
227 просмотров
schedule 06.10.2022