Size: a a a

2020 December 01

r

red75prime in Rust Beginners
Iaroslav Postovalov
можно ли что-то сделать с тем, что не известен размер инстансов?
Единственный вариант допустимый в const - это указатель на функцию. fn(T) -> bool
источник

r

red75prime in Rust Beginners
Код из замыкания, соответственно, нужно будет вынести в функцию.
источник

IP

Iaroslav Postovalov in Rust Beginners
red75prime
Код из замыкания, соответственно, нужно будет вынести в функцию.
эм
источник

IP

Iaroslav Postovalov in Rust Beginners
red75prime
Код из замыкания, соответственно, нужно будет вынести в функцию.
у меня получилось сделать fn(T) -> bool без вынесения в функцию
источник

IP

Iaroslav Postovalov in Rust Beginners
red75prime
Код из замыкания, соответственно, нужно будет вынести в функцию.
и всё работает
источник

r

red75prime in Rust Beginners
Iaroslav Postovalov
у меня получилось сделать fn(T) -> bool без вынесения в функцию
А, точно. Замыкания без захваченного состояния приводятся к указателям на функцию. Забыл.
источник

IP

Iaroslav Postovalov in Rust Beginners
red75prime
А, точно. Замыкания без захваченного состояния приводятся к указателям на функцию. Забыл.
ну мне оно и не нужно, у меня там вообще чистые функции
источник

G

George in Rust Beginners
Нормально что для Option<impl Into<String>> катит Some("text"), но None не работает? О_о
источник

G

George in Rust Beginners
George
Нормально что для Option<impl Into<String>> катит Some("text"), но None не работает? О_о
MRE: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0b70df55c887f21d57e23aca39717cee

dbg!() лишнее в принципе, можно просто пустую функцию оставить.
источник

V

Vitaliy in Rust Beginners
источник

G

George in Rust Beginners
А как? А почему?
И тут я вспомнил, что есть`ToString` и Display. Мда. Но я не понимаю той ошибки и её исправления.
источник

V

Vitaliy in Rust Beginners
George
А как? А почему?
И тут я вспомнил, что есть`ToString` и Display. Мда. Но я не понимаю той ошибки и её исправления.
Ну так у тебя две ошибки, какая из них непонятна?
источник

V

Vitaliy in Rust Beginners
1. ты в mre вызываешь dbg!, который требует чтобы объект внутри имплементировал Debug, это и нужно указывать в аргументах функции mre.

2. передавая Some(None) в функцию, компилятор не может вывести его тип, и тебе нужно указать его явно
источник

G

George in Rust Beginners
Vitaliy
1. ты в mre вызываешь dbg!, который требует чтобы объект внутри имплементировал Debug, это и нужно указывать в аргументах функции mre.

2. передавая Some(None) в функцию, компилятор не может вывести его тип, и тебе нужно указать его явно
Первая нечаянно, я её просмотрел. Ко второй вопрос.
Хм. Приведение через as выглядит некрасиво, конечно.
источник

АГ

Алексей Герасимов... in Rust Beginners
George
А как? А почему?
И тут я вспомнил, что есть`ToString` и Display. Мда. Но я не понимаю той ошибки и её исправления.
грубо говоря, None имеет тип forall T: Option<T>, и если в данном контексте T не конкретный тип, то компилятор не может вывести, ему по сути нужно в обратную сторону выводить, проверить что T удовлетворяет Into<String>
источник

V

Vitaliy in Rust Beginners
ну, можно так
let arg: Option<String> = None;
mre(arg);
смысл в том, чтобы явно указать тип агрумента для передачи в твою функцию
источник

G

George in Rust Beginners
Понятно. Попытаюсь обыграть это как-то, либо психану и заменю на String. Просто хотелось задёшево иметь возможность не кидать "".to_string() постоянно.
источник

G

George in Rust Beginners
macro_rules! none_str { () => { None as Option<String> } }
macro_rules! None { ($_type:ty) => { None as Option<$_type> } }

Макросы это какая-то болезнь, да? У меня скоро уже весь код в них будет...
источник

IP

Iaroslav Postovalov in Rust Beginners
есть ли что-то типа fmap для Option?
источник

IP

Iaroslav Postovalov in Rust Beginners
Iaroslav Postovalov
есть ли что-то типа fmap для Option?
аа, and_then. очень странное название
источник