Rust - это язык системного программирования без сборщика мусора, ориентированный на три цели: безопасность, скорость и параллелизм. Используйте этот тег для вопросов о коде, написанном на Rust. Используйте тег, относящийся к конкретному изданию, для вопросов, относящихся к коду, для которого требуется определенная редакция, например [rust-2018]. Используйте более конкретные теги для таких подтем, как [rust-cargo] и [rust-macros].

Подробнее про rust...

Я делаю игру на ржавчине и хочу, чтобы она была законной. Bevy ECS великолепна. Я следил за учебными пособиями и читал документацию, но есть одна вещь, которую я хочу знать. Могу ли я изменить значок окна? Если да, то как?...
27 Ноя 2022 в 05:04
У меня такой код: struct MyStruct<'a>{ data: &'a str, } fn get<'a>(S: &'a MyStruct<'a>) -> &'a str{ S.data } fn set<'a>(S: &'a mut MyStruct<'a>, x: &'a str){ S.data = x; } fn main(){ let mut S = MyStruct{data: "hello"}; let foo: &str = get(&S); set(&mut S, "goodbye"); ...
27 Ноя 2022 в 04:34
Я пытаюсь создать будущее DelayedValue, которое разрешается значением по истечении определенного периода времени. Для этого я просто хотел обернуть Sleep a> будущее из ящика tokio. Но я получаю ошибки, связанные с Pin, и что бы я ни делал, я не могу вызвать метод poll для базового члена Sleep. Для...
Новичок в ржавчине здесь. У меня есть ряд почти идентичных алгоритмов, но на последнем этапе все они агрегируют результаты немного по-разному. Допустим, Algorithm делает следующее: pub struct Algorithm<T> { result_aggregator: Box<dyn ResultAggregator<T>>, } impl<T> Algorithm<T> { pub fn c...
27 Ноя 2022 в 01:11
Как я могу вызвать закрытие, получающее мою структуру в качестве параметра и удерживающее это закрытие в качестве члена? type Thunk = Box<dyn FnMut(&mut Config) + Send + 'static>; struct Config { s: String, f: Thunk, } impl Config { fn run(&mut self) { // the problem is here ...
26 Ноя 2022 в 21:12
Я следую инструкциям в книге «Язык программирования Rust», чтобы создать игру-угадайку, но всякий раз, когда я пытаюсь запустить свой код (через команду Cargo run) в терминале VSCodium (версия VSCode с открытым исходным кодом), , мой код отказывается работать из-за следующей ошибки: no targets spec...
26 Ноя 2022 в 21:08
Может ли кто-нибудь помочь мне объяснить следующий код? В области 1 и 2 созданная локальная переменная удаляется, когда их область действия заканчивается, как и ожидалось. Однако в области 3 и 4 кажется, что локальная переменная, объявленная за ссылкой, не была удалена, локальная переменная, объяв...
26 Ноя 2022 в 21:02
Код ржавчины: let item_discount_price = item_discount_price_element.text().collect::<String>().trim(); Дать ошибку: error[E0716]: temporary value dropped while borrowed --> src/main.rs:64:35 | 64 | let item_discount_price = item_discount_price_element.text().collect::<String>().trim();...
26 Ноя 2022 в 20:14
Я новичок в Rust и действительно борюсь со способом написания кода на Rust. Я понимаю его правила для обеспечения правильности памяти, однако я не могу понять изменения, необходимые для соответствия в коде. Я создал объект, подобный дереву, из структуры json, полученной из приложения. Я пытаюсь соз...
26 Ноя 2022 в 20:07
Здравствуйте, моя цель - сделать что-то в цикле во время выполнения процесса. В следующем коде предполагается, что у меня уже есть действительный дескриптор процесса. Моя первая попытка была: let mut exit:u32 = 0; while GetExitCodeProcess(h_process, exit as *mut u32).as_bool(){ } Думал, что это мо...
26 Ноя 2022 в 13:51
Я новичок в ржавчине и пытаюсь понять принцип заимствования. У меня такой код: fn main() { let number_list = vec![34, 50, 25, 100, 65]; let largest_nbr = &number_list[0]; println!("The largest number is {}", largest_nbr); let number_list = vec![102, 34, 6000, 89, 54, 2, 43, 8]; ...
26 Ноя 2022 в 13:28
Я пишу библиотеку для Rust, которая охватывает некоторые специфичные для платформы вызовы API (в данном случае, чтобы открыть средство выбора файлов). В Linux есть два способа («бэкенды») открыть средство выбора файлов — с помощью GTK или с помощью порталов (что они на самом деле не имеют большого ...
26 Ноя 2022 в 10:19
Я создаю объект tesla, который происходит из структуры Car. Каждый автомобиль получает энергию для работы по-своему: в случае с Tesla мы подключаем кабель и пропускаем электричество, в случае с Honda мы заливаем масло в бак. Я хочу, чтобы структура моего автомобиля имела свойство get_energy с типом...
26 Ноя 2022 в 07:05
Пожалуйста, потерпите меня, так как это мой первый пост о переполнении стека. Я пытаюсь изучить ржавчину с довольно элементарным фоном в OpenCV через python. В моем исходном скрипте на Python я мог бы довольно легко использовать createTrackbar(), но при преобразовании в rust у меня возникли проблемы...
26 Ноя 2022 в 04:26
Я пытаюсь создать Actix API с помощью Diesel, и при создании первой конечной точки (/books/create) у меня возникают проблемы с попыткой вернуть вставленное значение в мой код. Это моя вставка: use diesel::prelude::*; use crate::models::Book; use crate::schema::books; use crate::db; pub fn create_b...
26 Ноя 2022 в 03:02
Мне нужно написать макрос multiply, который преобразует ident в однобуквенные идентификаторы и умножает их. let a = 4; let b = 7; println!("{}", multiply!(abbabbb)); // println!("{}", (a * b * b * a * b * b * b)) Но я не знаю, как сопоставить одну букву. Я хочу сделать что-то вроде этого: macro_rul...
25 Ноя 2022 в 21:32
Я пытаюсь портировать свой текущий сайт на ржавчину, используя тис и ствол. Мне нужна ширина окна, потому что я по-разному отображаю вещи для мобильных устройств, планшетов и ПК. Я отправляю ширину дочернему элементу, который печатает эту ширину в div, а также печатает ширину в компоненте, где я по...
25 Ноя 2022 в 20:10
join! может объединять несколько асинхронных операций: #![feature(future_join)] use std::future::join; async fn one() -> usize { 1 } async fn two() -> usize { 2 } let x = join!(one(), two()).await; assert_eq!(x, (1, 2)); Есть ли способ объединить несколько фьючерсов из вектора, чтобы количество ...
25 Ноя 2022 в 18:47
Я столкнулся со следующим (уменьшенным) примером: enum Thing { A { value: f32 }, B { value: f32 }, } fn main() { let mut thing = Thing::A { value: 0. }; let thing_mut_ref = &mut thing; if let Thing::A {value} = thing_mut_ref { *thing_mut_ref = Thing::B { value: value...
25 Ноя 2022 в 17:35
Следующий код macro_rules! test { ( $( $x1:expr ),*; blub $( $x2:expr ),* ) => { $( println!("{} * {} = {}", $x1, $x2, $x1 * $x2); )* } } fn main() { test!{1, 2, 3; blub 4, 5, 6}; } Печатает : 1 * 4 = 4 2 * 5 = 10 3 * 6 = 18 Однако я хочу перебирать оба спи...
25 Ноя 2022 в 17:29
Я уничтожаю элемент из кортежа, а затем записываю новый элемент. Оно работает. let mut a = ("111".to_string(), "222".to_string()); let (b,_) = a; a.0 = "333".to_string(); println!("{:?}", a); //output:("333", "222") Но я не могу сделать это в массиве: let mut a = ["111".to_str...
25 Ноя 2022 в 17:17
Добрый день всем, изучаю rust и хочу задать вопрос, в коде ниже один поток всегда работает больше чем другой, нормального распределения работы между потоками вроде нет. Я написал тот же код на С++, и он работает так же хорошо, может ли кто-нибудь помочь мне и сказать, где я ошибся в ржавчине? код: ...
25 Ноя 2022 в 17:15
Вопрос новичка: я хочу использовать ящик ржавчины petgraph. График должен быть частью struct MyGraph. Для этого мне нужно обернуть некоторые функции, чтобы сделать их доступными извне: use petgraph::graph::DiGraph; use petgraph::adj::NodeIndex; #[derive(Default)] struct MyNode {} #[derive(Defaul...
25 Ноя 2022 в 14:53
Я борюсь с программным использованием list_append в Rust. У меня есть таблица с именем Humidities: { "id": 177, "Measurements": [ 49 ] } И я хочу добавить элементы. Например: { "id": 177, "Measurements": [ 49, 53 ] } Это рабочее решение для python, которое я нашел здесь : table = get_...
25 Ноя 2022 в 14:12
Я новый rustacean, и я пытаюсь передать функцию в качестве аргумента в другую функцию, чтобы создать потоки с передачей функции в качестве аргумента. Вот код: use std::os::unix::net::{UnixListener, UnixStream}; use std::thread; use std::io::Read; use anyhow::Context; pub struct SocketServer { p...
25 Ноя 2022 в 13:13