Size: a a a

2020 December 04

MK

Max Kot in Rust Beginners
red75prime
const не может меняться во время исполнения программы. const значения во время компиляции копируются в место использования.
Но она же умрёт когда функция выполнится
источник

MK

Max Kot in Rust Beginners
Новый вызов, новая константа
источник

MK

Max Kot in Rust Beginners
Вот и интересно, как сделать правильнее
источник

MK

Max Kot in Rust Beginners
Покрайней мере вариант с константой работает
источник

SS

Steel Sword in Rust Beginners
Max Kot
Новый вызов, новая константа
Ты случаем const и let без mut не путаешь?
источник

MK

Max Kot in Rust Beginners
Нет
источник

MK

Max Kot in Rust Beginners
Константу я не изменяю
источник

MK

Max Kot in Rust Beginners
Я про создание массива через джинну указанную как константу
источник

MK

Max Kot in Rust Beginners
А значение константы получаю из функции
источник

M

Michael in Rust Beginners
Что я делаю не так?:(

Хочу сделать конвертацию из кастомного результата в HTTPResponse, но что-то не то

pub type Result<T: Serialize> = std::result::Result<T, Error>;

impl<T> std::convert::From<self::Result<T>> for actix_web::HttpResponse
where
   T: Serialize,
{
   fn from(result: self::Result<T>) -> Self {
       match result {
           Ok(v) => HttpResponse::Ok().json(&v),
           Err(err) => err.into(),
       }
   }
}


Компилятор пишет вот это:

   |
40 |   impl<T> std::convert::From<self::Result<T>> for actix_web::HttpResponse
  |   ^       -----------------------------------     ----------------------- `HttpResponse` is not defined in the current crate
  |   |       |
  |  _|       `std::result::Result` is not defined in the current crate
  | |
41 | | where
42 | |     T: Serialize,
43 | | {
...  |
49 | |     }
50 | | }
  | |_^ impl doesn't use only types from inside the current crate
  |
  = note: define and implement a trait or new type instead
источник

r

red75prime in Rust Beginners
Michael
Что я делаю не так?:(

Хочу сделать конвертацию из кастомного результата в HTTPResponse, но что-то не то

pub type Result<T: Serialize> = std::result::Result<T, Error>;

impl<T> std::convert::From<self::Result<T>> for actix_web::HttpResponse
where
   T: Serialize,
{
   fn from(result: self::Result<T>) -> Self {
       match result {
           Ok(v) => HttpResponse::Ok().json(&v),
           Err(err) => err.into(),
       }
   }
}


Компилятор пишет вот это:

   |
40 |   impl<T> std::convert::From<self::Result<T>> for actix_web::HttpResponse
  |   ^       -----------------------------------     ----------------------- `HttpResponse` is not defined in the current crate
  |   |       |
  |  _|       `std::result::Result` is not defined in the current crate
  | |
41 | | where
42 | |     T: Serialize,
43 | | {
...  |
49 | |     }
50 | | }
  | |_^ impl doesn't use only types from inside the current crate
  |
  = note: define and implement a trait or new type instead
Orphan rules. Нельзя реализовать чужой трейт (с чужим типом параметром) для чужого типа
источник

M

Michael in Rust Beginners
red75prime
Orphan rules. Нельзя реализовать чужой трейт (с чужим типом параметром) для чужого типа
О, спасибо
источник

JM

John Meow in Rust Beginners
Michael
О, спасибо
В книге же написано…
источник

SS

Steel Sword in Rust Beginners
Max Kot
А значение константы получаю из функции
Если у тебя каким-то магическим образом создаются константы в рантайме, а потом по этим константам массивы, то в чём собственно вопрос?
источник

FI

Fox Ice in Rust Beginners
Здравствуйте, возник такой вопрос. Вот например я запускаю уже скомпилированный файл с аргументом в виде файла в производной директории и мне нужно узнать в какой именно директории запускается программа. Как мне можно такое сделать?
источник

K

Kitsu in Rust Beginners
Fox Ice
Здравствуйте, возник такой вопрос. Вот например я запускаю уже скомпилированный файл с аргументом в виде файла в производной директории и мне нужно узнать в какой именно директории запускается программа. Как мне можно такое сделать?
Первый аргумент (std::env::args) содержит путь исполняемого файла (относительный или абсолютный), не уверен правда, что это кросс-платформенное поведение
источник

r

red75prime in Rust Beginners
Fox Ice
Здравствуйте, возник такой вопрос. Вот например я запускаю уже скомпилированный файл с аргументом в виде файла в производной директории и мне нужно узнать в какой именно директории запускается программа. Как мне можно такое сделать?
std::env::current_dir или std::env::current_exe
источник

FI

Fox Ice in Rust Beginners
Спасибо!
источник

АК

Александр Караев... in Rust Beginners
Привет.
Допустим, есть vec![1, -2, 3].into_iter().map(u32::try_from) - итератор из Option (или в общем случае Result). Как превратить его в Option (или Result) от итератора без промежуточных контейнеров?
источник

r

red75prime in Rust Beginners
Александр Караев
Привет.
Допустим, есть vec![1, -2, 3].into_iter().map(u32::try_from) - итератор из Option (или в общем случае Result). Как превратить его в Option (или Result) от итератора без промежуточных контейнеров?
let result: Result<Vec<_>, _> = iter.collect();
источник