Описание тега rust
Rust - это язык системного программирования без сборщика мусора, ориентированный на три цели: безопасность, скорость и параллелизм. Используйте этот тег для вопросов о коде, написанном на Rust. Используйте тег, специфичный для редакции, для вопросов, относящихся к коду, для которого требуется определенная редакция, например [rust-2018]. Используйте более конкретные теги для таких подтем, как [rust-cargo] и [rust-macros].
2
ответа
Тип параметра `T` может не жить достаточно долго
Я пытаюсь написать небольшую программу на Rust, но не могу заставить ее работать. Я воспроизвел ошибку в меньшем сценарии: fn main() { let name = String::from("World"); let test = simple(name); println!("Hello {}!", test()) } fn simple<T>(a: T…
19 апр '18 в 10:33
1
ответ
Почему я должен выставлять "использование" реализации макроса в клиентской библиотеке?
Я пытаюсь использовать макрос, который я создал в отдельном модуле. Со ссылкой на этот вопрос, я импортировал макрос нормально. Однако, похоже, у меня есть Обновление для добавления реализации макроса lib.rs #![macro_use] use std::fmt; use std::ffi:…
19 июн '15 в 17:25
0
ответов
Почему заимствования не допускаются в аргументе изменяемой функции
Название, вероятно, немного сбивает с толку, я имею в виду, что когда я пытаюсь скомпилировать: if folder_file_paths.len() > compressed_data.len() { compressed_data.reserve(folder_file_paths.len() - compressed_data.len() ); } Я получаю эту ошибку…
31 май '18 в 09:44
5
ответов
Можно ли объявить тип переменной в Rust для циклов?
C++ пример: for (long i = 0; i < 101; i++) { //... } В Rust я попробовал: for i: i64 in 1..100 { // ... } Я мог бы просто объявить let i: i64 = var перед циклом for, но я бы лучше изучил правильный способ сделать это, но это привело к error: expe…
28 июн '14 в 04:43
1
ответ
Как мне сделать диспетчерскую таблицу в Rust?
Я пытаюсь построить простой калькулятор RPN, и у меня есть основы работы. Я хотел бы сделать таблицу диспетчеризации для реализации различных функций калькулятора. Если бы я делал это на Perl, я бы написал что-то вроде: my %ops = ( '+' => sub { +…
17 июл '18 в 03:12
1
ответ
Как указать переменную среды, используя флаг rustc-env?
Я хочу установить rustc-env=VAR=VALUE чтобы я мог получить к нему доступ, используя env::var("VAR") в моем коде. Однако мне не ясно, где это указать. Могу ли я установить переменную среды VAR в Makefile?
31 июл '18 в 20:32
1
ответ
Подключите команду SSH к стандартному выводу
Я создаю инструмент командной строки, который динамически находит сервер из нашего кластера, затем на основе кластера извлекает соответствующий закрытый ключ, хранящийся в корзине Amazon s3, и локально копирует его в временный файл для подключения к…
17 сен '15 в 23:45
2
ответа
Почему этот макрос приводит к неразрешенной ошибке имени?
Я хотел бы скомпилировать код, похожий на этот минимальный тестовый пример: macro_rules! why { ( [ $saved:ident ] $body:block ) => { let $saved = 3; $body let _a = $saved; } } fn bar() { why!([saved] { }); } fn main() { } Когда я пытаюсь скомпили…
23 янв '16 в 15:24
0
ответов
Приведите объявление функции Rust к внешнему объявлению "C" в Rust
Я работаю с некоторой библиотекой C и extern "C" для базовой функции C выглядит следующим образом: std::option::Option<unsafe extern "C" fn(bdev_io: *mut spdk_bdev_io, success: bool, cb_arg: *mut ::std::os::raw::c_void)> Базовая библиотека C и…
18 окт '18 в 02:34
1
ответ
Как решить вопрос "срок действия ссылки истекает срок действия заимствованного контента" в следующем контексте?
У меня есть следующая структура в моем lib.rs pub enum ConfigurationSource { StringContent(String), FileContent(PathBuf) } pub struct ConfigurationBuilder<'a> { config: Value, bundles: HashMap<&'a str, &'a Vec<ConfigurationSource…
12 ноя '17 в 11:31
1
ответ
Почему `Future::poll` не вызывается повторно после возврата`NotReady`?
Рассмотрим следующий код extern crate futures; use std::sync::{atomic, Arc}; use futures::*; struct F(Arc<atomic::AtomicBool>); impl Future for F { type Item = (); type Error = (); fn poll(&mut self) -> Result<Async<Self::Item>…
19 апр '17 в 18:56
2
ответа
Можно ли использовать охранники сопоставления с образцом в `while let`?
У меня есть while let цикл, который проходит через итератор Result и использует сопоставление с образцом; он проходит через итератор, пока не достигнет Err или Okзначение пустая строка: while let Some(Ok(a)) = some_iterator.next() { if a == "" { bre…
26 окт '16 в 18:04
1
ответ
Как я могу остановить чтение BufReader в Rust при использовании read_until()?
Я пытаюсь использовать BufReader загрузить кучу данных, а затем использовать read_until() сканировать данные. Тем не менее, мне трудно разглядеть, когда read_until() нажимает EOF, и мой код снова возвращается к началу данных, создавая бесконечный ци…
17 окт '18 в 02:36
1
ответ
Занимать проверку и аргументы функции в Rust, правильно или более усердно?
Когда изменяемый аргумент передается в качестве аргумента функции, средство проверки заимствования не позволяет использовать его для создания других аргументов, даже когда эти аргументы клонируют значения без ссылки. Хотя присваивание переменных за …
02 янв '17 в 03:43
0
ответов
Rust serde_json сериализатор для красивой печати [u8; 32]
Я хочу получить красивую печать в Rust для [u8; 32], с serde_json, но не могу заставить его работать. Я знаю, является ли следующая структура (Vec<u8>)Работает, как эта игровая площадка. Но я должен сохранить структуру ([u8; 32]), потому что о…
24 июл '18 в 09:56
2
ответа
Почему Iterator::take_while вступает во владение итератором?
Я нахожу странным, что Iterator::take_while вступает во владение итератором. Это кажется полезной возможностью, чтобы иметь возможность взять первые элементы x, которые удовлетворяют некоторой функции, но все же оставляют остальные элементы доступны…
13 июл '15 в 00:48
1
ответ
Как преобразовать Option<& T> в Option<T> самым идиоматическим способом в Rust?
При использовании HashMap's get метод, я получаю Option<&T>Я столкнулся с этим снова на этот раз с Option<&String>, Я хотел бы получить собственную стоимость Option<String>, Возможно ли это без меня писать map(|x| x.to_owne…
14 июл '18 в 12:40
1
ответ
Как использовать объект признака для ссылки на структуру, которая имеет общие методы
В связи с этим вопросом, храня замыкание в HashMap, я узнал, что для правильной передачи замыканий в функцию требуется, чтобы функция была универсальной и принимала любой тип, реализующий черту Fn, FnMut или FnOnce. При реализации части библиотеки и…
23 мар '15 в 03:06
2
ответа
Границы признаков замыкания в переменных типа по сравнению с границами признаков замыкания в аргументах функций высшего порядка
Почему эти 2 работы: fn apply_once1<F: FnOnce(T1) -> T2, T1, T2> (f: F, x: T1) -> T2 { f(x) } fn apply_once2<F, T1, T2> (f: F, x: T1) -> T2 where F: FnOnce(T1) -> T2 { f(x) } Но этот не компилируется: fn apply_once3<T1, T2…
30 мар '16 в 06:09
2
ответа
Почему я не могу использовать вывод типа с объявлением массива?
Я объявил массив пользовательских черт Animal чтобы поэкспериментировать с полиморфизмом в Rust, но компилятор, кажется, вместо этого делает вывод типа для подтипа первого элемента: fn main() { let animals = [Cat, Dog, Cat, Lion, Dog, Lion]; for sin…
12 сен '16 в 13:42