Size: a a a

Rust — русскоговорящее сообществo

2020 April 09

OA

Oleg Andreev in Rust — русскоговорящее сообществo
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
если у нас .flush() .flush() .flush(), то это все no-op
источник

p

polunin.ai in Rust — русскоговорящее сообществo
ок
источник

K

Kitsu in Rust — русскоговорящее сообществo
Ready(Ok(0)) -> файл кончился
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
единственное, что непонятно, почему 100 -> Ok(0) где-то случается и по какому принципу и в каких слоях мидлваре нужно менять это на еггог
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Kitsu
Ready(Ok(0)) -> файл кончился
почему не Ready(Err(EOF))?
источник

K

Kitsu in Rust — русскоговорящее сообществo
Oleg Andreev
почему не Ready(Err(EOF))?
https://doc.rust-lang.org/std/io/trait.Read.html#tymethod.read
без понятия, видимо наследие с posix-api
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
просто если кто-то где-то не думая конвертирует Ok(0) в ошибку, то это сильно вломит в тех случаях, когда у тебя пишется 0.
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а причины для этого могут быть уважительные, типа как обертка с буферами, где юзер вызываешь flush, а ничего не было записано
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
или потому что у тебя написан нормальный цикл for ... { io.write() }; io.flush() и так уж получилось что шагов было ноль.
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
polunin.ai
ну у нас я это сделал ошибкой насколько помню, если юзер делает flush() на пустом буфере
"Ошибкой" - это паникой, Result, или ошибкой тайп-чекера?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Gymmasssorla
"Ошибкой" - это паникой, Result, или ошибкой тайп-чекера?
Err(WriteZero)
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Можно было бы ошибкой тайп-чекера сделать, см. Parse, don't validate
источник

В

Вафель in Rust — русскоговорящее сообществo
без завтипов parse, don't validate anyway приходит к Result на каком-то этапе 🤔
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Вафель
без завтипов parse, don't validate anyway приходит к Result на каком-то этапе 🤔
Уже лучше, отпадают лишние проверки
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
The Maybe is still there, but this time, we handle the Nothing case very early in our program: right in the same place we were already doing the input validation. Once that check has passed, we now have a NonEmpty FilePath value, which preserves (in the type system!) the knowledge that the list really is non-empty. Put another way, you can think of a value of type NonEmpty a as being like a value of type [a], plus a proof that the list is non-empty.
источник

В

Вафель in Rust — русскоговорящее сообществo
Gymmasssorla
The Maybe is still there, but this time, we handle the Nothing case very early in our program: right in the same place we were already doing the input validation. Once that check has passed, we now have a NonEmpty FilePath value, which preserves (in the type system!) the knowledge that the list really is non-empty. Put another way, you can think of a value of type NonEmpty a as being like a value of type [a], plus a proof that the list is non-empty.
Я не говорю что это значит что parse, don't validate тз-за этого в расте не стоит использовать, но всё же иногда это может быть больно (всё как всегда зависит от случая)
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Предпололжим, у меня есть крейт с процмакросом и основной крейт.
Я хочу использовать процмакрос внутри основного крейта и нужен основной крейт, чтобы работал процмакрос.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Мне нужно, типа, делать циклическую зависимость?
источник

P

Pavel in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Мне нужно, типа, делать циклическую зависимость?
тебе нужно её решить
источник