Size: a a a

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

2020 April 09

OA

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

OA

Oleg Andreev in Rust — русскоговорящее сообществo
кто-нить знает нафиг нужен io::ErrorKind::WriteZero (AsyncWrite)?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
допустим юзер пишет 0 байт, почему я не могу просто выдать Poll::Ready(Ok())
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Casual tears
Можно же на AsyncRead\AsyncWrite опираться
ну он про то что это все равно надо писать ручками или искать какое-то mio, но вот говорят тут недавно придумали что-то более сильное — https://stjepang.github.io/2020/04/03/why-im-building-a-new-async-runtime.html

Imagine a runtime that is just as powerful as async-std and tokio, just as fast, does not depend on mio, fits into a single file, has a much simpler API, and contains only safe code.  It brings a novel approach to structured concurrency, it integrates with the library ecosystem, it can run hyper, async-h1, async-native-tls, and async-tungstenite. It can spawn !Send futures, supports the full networking stack, handles files, processes, stdio, and custom I/O objects. It works on all platforms you’d expect it to.

@oleganza ^
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Oleg Andreev
кто-нить знает нафиг нужен io::ErrorKind::WriteZero (AsyncWrite)?
так, вопрос снят
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
это ошибка "не смог нискока", а не "вы попросили нискока"
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Oleg Andreev
тут штука в том, что всякие сорсы ивентов (таймеры, сокеты) привязаны к рантайму. Т.е. в стд или не в стд, все равно чтоб люди писали либы нужно договориться о совместимости. Или сделать хук потипу GLOBAL_ALLOCATOR, чтоб сокеты привязывались к нему, а ты уже в одном месте включаешь какой тебе нужно рантайм. Но даже этот хук должен быть "стандартным" и всеми принятым. А сейчас довольно херово потому что каждый рантайм должен идти со своим сетевым стеком и максимумом плюшек, потому что они все вместе повязаны.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
допустим юзер пишет 0 байт, почему я не могу просто выдать Poll::Ready(Ok())
Например если буффер недостаточного размера, а продолжать запись надо.
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
polunin.ai
Например если буффер недостаточного размера, а продолжать запись надо.
я имел в виду, если юзер хочет записать 0 байт, то это no-op вроде
источник

OA

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

K

Kong Ning Kuan 孔宁宽 in Rust — русскоговорящее сообществo
еггог нифига себе
источник

K

Kong Ning Kuan 孔宁宽 in Rust — русскоговорящее сообществo
*записал в словарик шикарных слов*
источник

A

Aragaer in Rust — русскоговорящее сообществo
ну то есть если юзер попросил 2, а удалось записать только 1, то это не ошибка
источник

A

Aragaer in Rust — русскоговорящее сообществo
ошибка только если записать не удалось ничего
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Aragaer
ошибка только если записать не удалось ничего
А если удалось записать 0 байт? )))
источник

A

Aragaer in Rust — русскоговорящее сообществo
0 байт считается за ничего 8)
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Ну то есть если я пустой буфер отправлю, то что получу?
источник

A

Aragaer in Rust — русскоговорящее сообществo
тогда никто ничего не будет пытаться делать и успешно вернет 0
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
я имел в виду, если юзер хочет записать 0 байт, то это no-op вроде
ну у нас я это сделал ошибкой насколько помню, если юзер делает flush() на пустом буфере
источник

OA

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