Запитання з тегом «rust»

Іржа - це система програмування без сміттєзбірника, орієнтована на три цілі: безпеку, швидкість та сумісність. Використовуйте цей тег для запитань про код, написаний на "Іржа". Використовуйте тег для видання для запитань, що стосуються коду, який вимагає певного видання, наприклад [rust-2018]. Використовуйте більш конкретні теги для підтемати, наприклад [іржа-вантаж] та [іржа-макрос].

1
Як я можу помістити функцію асинхронізації на карту в Rust?
Я не можу працювати з функціями асинхронізації під час запису маршрутизатора для асинхронізації для hyper. Цей код: use std::collections::HashMap; use std::future::Future; type BoxedResult<T> = Result<T, Box<dyn std::error::Error + Send + Sync>>; type CalcFn = Box<dyn Fn(i32, i32) -> dyn Future<Output = BoxedResult<i32>>>; async fn add(a: i32, b: i32) -> BoxedResult<i32> …
11 rust  async-await 

1
Чи можу я включити інформацію про налагодження лише для свого коду без пакетів?
З включеною інформацією про налагодження мій бінарний файл стає приблизно 400 Мб. Це відбувається тому, що Rust включає інформацію про налагодження для всіх залежностей. Чи є спосіб включити інформацію про налагодження лише для мого коду? [package] name = "app" version = "0.7.1" edition = "2018" [dependencies] actix = "*" actix-web …
11 rust  rust-cargo 

1
Як мені викликати функцію, коли змінна та функція мають однакове ім'я?
Змінна та функція мають те саме ім'я. Як мені викликати функцію? fn main() { let a = 1; fn a() -> i32 { 2 } println!("{}", a()); } Компілятор Іржі сказав мені: error[E0618]: expected function, found `{integer}` Іншими словами, компілятор Rust не викликає aфункції, а натомість отримує доступ до aзмінної.
10 rust 

1
Чим відрізняється `| _ | async move {} `та` async move | _ | {} `
Розглянемо наступні приклади: main.rs use futures::executor::block_on; use futures::future::{FutureExt, TryFutureExt}; async fn fut1() -> Result<String, u32> { Ok("ok".to_string()) } fn main() { println!("Hello, world!"); match block_on(fut1().and_then(|x| async move { Ok(format!("{} is \"ok\"", x)) })) { Ok(s) => println!("{}", s), Err(u) => println!("{}", u) }; } Cargo.toml [dependencies] futures = "^0.3" Я …
10 rust 

1
Як використовувати fust async fn, який приймає посилання як зворотний дзвінок?
async fnповертає анонімний тип, який реалізується Future, тому, якщо ми хочемо використовувати його як зворотний виклик, нам потрібно перетворити повернене значення в об’єкт ознаки. Я намагався написати функцію для цього, але у мене були деякі проблеми з життям. async fnповерне термін служби всіх параметрів, тому підпис зворотного дзвінка також повинен. …
10 rust  async-await 

1
Чому додавання другого імпульту запобігає примусовому застосуванню аргументу?
Я зіткнувся з цим питанням, намагаючись додати імпл Add<char> for Stringдо стандартної бібліотеки. Але ми можемо повторити це легко, без операторів шнаніганів. Почнемо з цього: trait MyAdd<Rhs> { fn add(self, rhs: Rhs) -> Self; } impl MyAdd<&str> for String { fn add(mut self, rhs: &str) -> Self { self.push_str(rhs); self …

1
Чи повинен дизель працювати за допомогою актора синхронізації, actix_web :: web :: block або futures-cpupool?
Фон Я працюю над веб-додатком actix, використовуючи дизель через r2d2 і не знаю, як найкраще робити асинхронні запити. Я знайшов три варіанти, які здаються розумними, але не знаю, який із них найкращий. Потенційні рішення Синхронізатор Для одного я міг би використати приклад actix , але він досить складний і вимагає …

1
Як увімкнути функцію "ящик" іржі?
Я намагаюся використовувати rand::SmallRng. У документації йдеться Цей PRNG оснащений функцією : для використання потрібно включити функцію ящика small_rng. Я шукав і не можу зрозуміти, як увімкнути "функції ящика". Фраза навіть не використовується ніде в документах "Іржа". Це найкраще, що я міг придумати: [features] default = ["small_rng"] Але я отримую: …

2
Лиття посилання функції, що створює недійсний покажчик?
Я відслідковую помилку в коді сторонньої сторони, і я звузив її до чогось уздовж лінії. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } Починаючи з стабільного 1,38.0, це друкує функцію вказівника, але бета …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.