Вопросы по теме '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 просмотров
schedule
27.10.2023
Повторное использование привязки в закрытии 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 просмотров
schedule
17.03.2024
Как добиться инкапсуляции полей структуры без заимствования структуры в целом
Мой вопрос уже несколько обсуждался здесь .
Проблема в том, что я хочу получить доступ к нескольким отдельным полям структуры, чтобы использовать их, но я не хочу работать с полями напрямую. Вместо этого я хотел бы инкапсулировать доступ к ним,...
137 просмотров
schedule
15.06.2024
Как вернуть ссылку в аргумент функции Rc‹RefCell‹››?
Это минимальная воспроизводимая ошибка, взятая из интерпретатора, который я пишу. Насколько я понимаю, я должен иметь возможность вернуть ссылку на поле структуры в RefCell, так как RefCell имеет достаточное время жизни. Однако компилятор говорит...
227 просмотров
schedule
06.10.2022