Tuntz
хотя по опыту скажу, что если автор не может положить архитектуру на Future/Stream/Sink или async-await, то проблема в дизайне
Anton
так то да, просто тред был к тому что секаса в расте больше
Anton
как впрочем и гарантий
Anton
Anton
хотя основа очень простая и удобная
Anton
(это я про limn)
Anton
простенький и понятный ивентлуп
Anton
я пока больше задрачиваюсь на тему того как потом отлаживать, написание компонентов, роуты и дизайн
Anton
правда меня пока по работе ебут жестко, так что на это времени пока не особо(
Bugworm
https://maikklein.github.io/rlsl-progress-report/
Нави
Всю ночь сидел, пытался парсинг файла в структуру вынести из main в отдельную функцию, для удобства модульности, так ни с чем и лёг спать
Нави
Это говорит о том, на моём примере, как человек привык к неумению быть в рамках правил, и как тяжко вникать, что внутри рамок тоже есть жизнь)
Маjко
Откуда такой вывод про рамки, лол?
Непривычная парадигма — сразу рамки?)
Alexey
Нави
проблемы с борроучекером?
Проблема с борьбой компилятора, всё хочет, что бы я по его правилам играл, не научился ещё правильно описывать структуры, что бы компилятор съедал и неподавился
Alexey
Нави
А до того был опыт с компилятором какого языка?
До начала использования структуры все гладко шло. Ну конечно раньше по началу были трения с более простыми вещами. До раста более менее серьёзных програм в компилируемых языках дел не имел, дружил с вселюбящими перилами и яваскриптами)
Alexey
Переход с одного с дианамики на статику (ну и обратно) это та еще боль. Удачи :-)
Нави
Перилами - перлами!!
Anton
Нави
Щас сяду, буду добивать структуры, что бы послушными стали)
Рома
где можно прочитать про трейты более подробно?
доня.
https://doc.rust-lang.org/book/first-edition/traits.html
https://doc.rust-lang.org/book/second-edition/ch19-03-advanced-traits.html
Нави
Меня посетило озарение! В расте есть какй либо механизм описания функции, наподобие констант const, где по факту константа встраивается в каждое место, где используется, ?
doc
Дефолтное значение вместо ошибки чтоль?
Alexey
Нави
походу дело я наверно говорю о макросах
Alexey
компилятор много чего заинлайнить может
Маjко
Антон
Антон
LexsZero
на K
Антон
Alexander
Вопрос: сделал range = 1..10, потом несколько слайсов &a[range] &b[range], но оказывается оно владение забирает, везде клон писать? А может какой-то более нормальный метод есть?
Нави
struct Cfg<'a> {
...
}
fn configuration() -> Cfg {
вот на чём затык получаю:
error[E0106]: missing lifetime specifier
Crazy
LexsZero
а зачем там вообще указывать лайфтайм?
պլհկ
Нави
а нет, стоп щас
Нави
error: expected identifier, found <
—> src/main.rs:34:4
|
34 | fn <'a> configuration() -> Cfg<'a> {
| ^
error: aborting due to previous error
պլհկ
Лайфтаймы не берутся из воздуха (кроме статик), если нет в аргументах, то и в результате не может быть
պլհկ
struct Cfg покажи, зачем там лайфтайм?
Нави
պլհկ
Но в аргументах функции его нет
Crazy
Нави
Сорь
Вроде так
что то сдвинулось с места)
щас, там груду новых руганий разберу...
պլհկ
str этот откуда берётся?
Нави
str этот откуда берётся?
читается файл, и разбирается по значениям, есть и числа и строки, и вектор строк даже. Сначала по отдельным независимым переменным записывал, теперь в структуру организую
պլհկ
Ты все это внутри функции configuration() делаешь?
Нави
в майне работает
պլհկ
Ну есть простое правило: все что внутри функции остаётся внутри функции))
Ты передаешь ссылку наружу на данные которые на выходе из функции будут невалидны, и компилятор этого не позволит.
Нави
https://play.rust-lang.org/?gist=4ea2feb2a725121b7b62b183d95d5847&version=stable
Нави
error[E0597]: text does not live long enough
Нави
не могу подружить теперь string с временем жизни 'a
Маjко
В этом случае у тебя есть String, его и возвращай
Маjко
https://t.me/rust_beginners_ru
Alexander
А лайфтаймы что-то меняют или это просто чтобы проверка проходила?
Нави
В этом случае у тебя есть String, его и возвращай
для упрощения так написал.
На самом деле text - читается из файла, а потом из текста берутся множество строчек в str, и комплектуются в структуру.
Тогда в структуре, вместо &'a str возвращать string ?
Маjко
https://doc.rust-lang.org/book/second-edition/ch19-02-advanced-lifetimes.html
Маjко
Нави
к стати не ругается только на это (это внутри создания структцры):
pause: std::time::Duration::from_secs(u64::from_str(text.split("sec=").last().unwrap().split(";").next().unwrap()).ok().expect("ОШИБКА!!! - Неправильное значение параметра периода опросов!")),
а на всё остальное ругаетсяя типа этого:
message: text.split("message=").last().unwrap().split(";").next().unwrap(),
Нави
значит понимаю, что в преобразовании строки в число, строка потом отпадает, и поэтому неругается на строку
Нави
значит есть какие то возможности для отстального, отвязать строку text от возвращаемых результатов
պլհկ
Возвращай String, зачем тебе str?
պլհկ
Тем временем
https://vorner.github.io/corona-04.html
Нави
в коненом итоге отказался выводить создание структуры с &str в отдельную функцию, пользы это не прибавило бы. А string нехочу, потому, что каждый раз тогда пришлось бы писать .as_str() .
Саму структуру в функцию научился передавать а = f(&Cfg);
где Cfg<'a> - структура.
А в функции уже:
fn configuration<'a😠cfg: &Cfg<'a>) {
println!("{}", cfg.message);
}
Нави
на этом закрыл тему структуры в этой программе, когда ни будь придётся больше узнать)
Маjко
Маjко
&string == string.as_str()
Dereference rules
Нави
шо?
Маjко
Маjко
А, хотя
Нави
Маjко