Size: a a a

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

2020 March 12

MF

Max Frai in Rust — русскоговорящее сообществo
Подскажите, а webrenderer сейчас умеет отрендерить страницу? типа puppeteer
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20

" For those expecting another jump this quarter from Rust, the results will be disappointing: the shiny language that many have argued should be used as the basis for more core infrastructure projects moving forward remained flat at #21."
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Alexander Cosmofighter
Юз кейс такой, что у меня есть фабрика, которая порождает обьекты, которые потом могут быть вызваны с контекстом. Но на момент создания обьектов у меня контекста нету
Давай везде ссылку на саму фабрику?

Вообще не обязательно ООП паттерны хорошо ложатся на раст. Возможно стоит переосмыслить как все это сделать
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
Max Frai
Подскажите, а webrenderer сейчас умеет отрендерить страницу? типа puppeteer
ты про https://github.com/servo/webrender? он же ничего про страницы не знает, это просто абстрактная 2д рисовалка с GPU ускорением
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
сам servo в headless должен бы уметь - не пробовал, но точно видел у него в апи headless_window, да и headless аргумент у приложения имеется
источник

f

folex in Rust — русскоговорящее сообществo
А можно ли как-нибудь заматчить вариант енума без деструкции?
match v {
  (v: Name::Variant) => {}
}

вроде того
источник

dp

dark pit in Rust — русскоговорящее сообществo
folex
А можно ли как-нибудь заматчить вариант енума без деструкции?
match v {
  (v: Name::Variant) => {}
}

вроде того
&
источник

M

Marat in Rust — русскоговорящее сообществo
dark pit
рабочий пример, как настройками Cargo через флаги rustc передать линкеру Module-Definition (.Def) файл
кстати да, и надо учесть, что в binutils (для linux) у ld есть тоже def-файл, но там свой формат
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
folex
А можно ли как-нибудь заматчить вариант енума без деструкции?
match v {
  (v: Name::Variant) => {}
}

вроде того
v @ Name::Variant ?
источник

dp

dark pit in Rust — русскоговорящее сообществo
folex
А можно ли как-нибудь заматчить вариант енума без деструкции?
match v {
  (v: Name::Variant) => {}
}

вроде того
а.  не.  ищи в std::mem что-то типа enum_discriminant.
источник

dp

dark pit in Rust — русскоговорящее сообществo
Marat
кстати да, и надо учесть, что в binutils (для linux) у ld есть тоже def-файл, но там свой формат
в данном случае это исключительно виндовый проект, использующий виндовую инфраструктуру.  однако не откажусь послушать лекцию о кроссплвтформенности билд скриптов?
источник

r

red75prime in Rust — русскоговорящее сообществo
folex
А можно ли как-нибудь заматчить вариант енума без деструкции?
match v {
  (v: Name::Variant) => {}
}

вроде того
Если значения, содержащиеся в вариантах enum'а, в матче не используются, то он не деструктурируется. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=9d22fcb2970426f43de95eda73158258
источник

r

red75prime in Rust — русскоговорящее сообществo
Если там Copy-значения, то тоже не деструктурируется
источник

f

folex in Rust — русскоговорящее сообществo
@ помог, но пока не могу сообразить, как бы мне сделать вот так:
match v {
 v @ &Name::Variant { field, .. } => {
   table.lookup(&field) {
      channel.send(*v)
   }
 }
}


В общем, хочу избежать пересобирания енума, тк мне от него только ссылка на одно поле нужна:
channel.send(Name::Variant{ field, field2, etc })
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
ref field?
источник

r

red75prime in Rust — русскоговорящее сообществo
folex
@ помог, но пока не могу сообразить, как бы мне сделать вот так:
match v {
 v @ &Name::Variant { field, .. } => {
   table.lookup(&field) {
      channel.send(*v)
   }
 }
}


В общем, хочу избежать пересобирания енума, тк мне от него только ссылка на одно поле нужна:
channel.send(Name::Variant{ field, field2, etc })
match &v { &Name::Variant { ref field, .. } => send(v) }
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
folex
@ помог, но пока не могу сообразить, как бы мне сделать вот так:
match v {
 v @ &Name::Variant { field, .. } => {
   table.lookup(&field) {
      channel.send(*v)
   }
 }
}


В общем, хочу избежать пересобирания енума, тк мне от него только ссылка на одно поле нужна:
channel.send(Name::Variant{ field, field2, etc })
источник

f

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

f

folex in Rust — русскоговорящее сообществo
let v: Result<Name, ()> = Ok(Name::Variant { o: Opaque{} });
   match &v {
       Ok(&Name::Variant { ref o }) => {
           if foo(o) {
               drop(v);
           }
       },
   }
источник

r

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