Size: a a a

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

2020 September 19

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Кирилл
Не надо to_end. Надо N байт.
.take(n).read_to_end()
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
вафель 🧇
.take(n).read_to_end()
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Ага да, известная штука 👌
источник

К

Кирилл in Rust — русскоговорящее сообществo
вафель 🧇
.take(n).read_to_end()
Спасибо. Интересно. Подумаю о таком подходе. Минусы - нужен read по значению иметь. И убивать его в этот take. Это не совсем вписывается в мою концепцию.
источник

К

Кирилл in Rust — русскоговорящее сообществo
Понятно)
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Кирилл
Спасибо. Интересно. Подумаю о таком подходе. Минусы - нужен read по значению иметь. И убивать его в этот take. Это не совсем вписывается в мою концепцию.
.by_ref().take(n)?
источник

К

Кирилл in Rust — русскоговорящее сообществo
Оно сработает? take же self по значению требует.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Сработает. &mut R where R: Read тоже имплементирует Read
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Мне кажется блок с переменной там не обязателен, можно в одну строчку написать.

tmp-шки дропнутся на ;
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Вроде бы с NLL не надо такое делать с областями видимости
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
я только что так и сказал, лол
источник

M

Mnwa in Rust — русскоговорящее сообществo
Кто-нибудь знает, как мне прочитать структуру в proc_macro
#[injectable(factory => Default::default(), name => "test")]

Я пробую прочесть как-то так
fn parse_injectable_input(input: ParseStream<'_>) -> syn::Result<InjectableArgs> {
   Punctuated::parse_terminated_with(input, Punctuated::parse_separated_nonempty)
}

type InjectableArgs = Punctuated<Punctuated<PathSegment, Token![=>]>, Token![,]>;

но компилятор падает с ошибкой

error: expected ,
 --> derive_di/src/lib.rs:14:40
  |
14 |         #[injectable(factory => Default::default(), name => "test")]
  |                                        ^^
источник

D

Denis in Rust — русскоговорящее сообществo
Mnwa
Кто-нибудь знает, как мне прочитать структуру в proc_macro
#[injectable(factory => Default::default(), name => "test")]

Я пробую прочесть как-то так
fn parse_injectable_input(input: ParseStream<'_>) -> syn::Result<InjectableArgs> {
   Punctuated::parse_terminated_with(input, Punctuated::parse_separated_nonempty)
}

type InjectableArgs = Punctuated<Punctuated<PathSegment, Token![=>]>, Token![,]>;

но компилятор падает с ошибкой

error: expected ,
 --> derive_di/src/lib.rs:14:40
  |
14 |         #[injectable(factory => Default::default(), name => "test")]
  |                                        ^^
почему PathSegment? просто Path попробуй
источник

D

Denis in Rust — русскоговорящее сообществo
и это, советую не пренебрегать юнит-тестами во время написания процедурных макросов
источник

D

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

M

Mnwa in Rust — русскоговорящее сообществo
Denis
почему PathSegment? просто Path попробуй
Path тоже не подходит, потому что там нужно парсить Default::default()
источник

D

Denis in Rust — русскоговорящее сообществo
Mnwa
Path тоже не подходит, потому что там нужно парсить Default::default()
почему не подходит-то?
источник

D

Denis in Rust — русскоговорящее сообществo
а, скобочки
источник

D

Denis in Rust — русскоговорящее сообществo
а как ты хочешь запихнуть и Default::default(), и "test"?
источник