Size: a a a

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

2020 December 06

E

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

RS

Roma S in Rust — русскоговорящее сообществo
Roman Q
это кажется накладно - создавать нового консьюмера на каждый новый сабскрипшен
зависит от количества из размера сообщений, кмк. но с другой стороны, как @kitsu пишет — будет проще управлять (если самому бродкастить, то надо как-то для каждого внутреннего потребителя сохранять офсет сообщения, обработанного и тд)
источник

R

Roman Q in Rust — русскоговорящее сообществo
Roma S
зависит от количества из размера сообщений, кмк. но с другой стороны, как @kitsu пишет — будет проще управлять (если самому бродкастить, то надо как-то для каждого внутреннего потребителя сохранять офсет сообщения, обработанного и тд)
согласен. для моей задачи подойдет новый консьюмер с уникальным group_id
источник

MV

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

- tests
---- dashboard
------ utils.rs
---- dashboard.rs

в dashboard.rs заинклудить utils.rs?
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Kitsu
отлищно, у ArgGroup есть флажок multiple, вот так работает:

use structopt::clap::ArgGroup;
use structopt::StructOpt;

#[derive(Debug, StructOpt)]
#[structopt(
   group = ArgGroup::with_name("verbosity").multiple(false),
)]
struct Opt {
   #[structopt(long, group = "verbosity")]
   verbose: bool,
   #[structopt(long, group = "verbosity")]
   quiet: bool,
}

fn main() {
   dbg!(Opt::from_args());
}
а как насчет сделать enum LogLevel { Verbose, Quiet } и не парить себе мозг?) Заодно получишь возможность писать if loglevel >= LogLevel::Debug виместо if debug || info || warn || error { .. }
источник

K

Kitsu in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
а как насчет сделать enum LogLevel { Verbose, Quiet } и не парить себе мозг?) Заодно получишь возможность писать if loglevel >= LogLevel::Debug виместо if debug || info || warn || error { .. }
match (args.verbose, args.quiet) {
   (true, _) => LevelFilter::Debug,
   (_, true) => LevelFilter::Warn,
   _ => LevelFilter::Info,
}

у лога ж есть енум, и так читабельно выходит
источник

K

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

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Kitsu
match (args.verbose, args.quiet) {
   (true, _) => LevelFilter::Debug,
   (_, true) => LevelFilter::Warn,
   _ => LevelFilter::Info,
}

у лога ж есть енум, и так читабельно выходит
не забудь args.info, args.error, args.warn
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Kitsu
ну и со своим енамом кажется придется плясать с парсингом енума
если он бул парсит то думаешь энум не сможет?
источник

K

Kitsu in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
не забудь args.info, args.error, args.warn
да мне и не нужно
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Kitsu
да мне и не нужно
ну может потом будет нужно. В любом случае это правильно. —log info никак не сложнее
источник

K

Kitsu in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
если он бул парсит то думаешь энум не сможет?
Скажи как, я не в курсе
источник

K

Kitsu in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
ну может потом будет нужно. В любом случае это правильно. —log info никак не сложнее
Вот если понадобится, тогда и переделываю. Зачем решать несуществующие задачи
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
use clap::arg_enum;
use structopt::StructOpt;

#[structopt(long = "log",
     raw(possible_values = "&LogLevel::variants()", case_insensitive = "true"),
     raw(default_value = "Verbose"))]
pub log_level: LogLevel,

arg_enum! {
   #[derive(Debug)]
   enum LogLevel {
       Verbose,
       Info,
       Warn
   }
}
источник

K

Kitsu in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
use clap::arg_enum;
use structopt::StructOpt;

#[structopt(long = "log",
     raw(possible_values = "&LogLevel::variants()", case_insensitive = "true"),
     raw(default_value = "Verbose"))]
pub log_level: LogLevel,

arg_enum! {
   #[derive(Debug)]
   enum LogLevel {
       Verbose,
       Info,
       Warn
   }
}
о неплохо, спасибо
источник

K

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

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Что дублировать?
источник

SK

Sugata KZS in Rust — русскоговорящее сообществo
Ребят, что скажете  о русском раст-буке?Насколько там хороший перевод?
https://doc.rust-lang.ru/book
источник

AL

Andrey @ozkriff Lesn... in Rust — русскоговорящее сообществo
Sugata KZS
Ребят, что скажете  о русском раст-буке?Насколько там хороший перевод?
https://doc.rust-lang.ru/book
сейчас половина людей напишет, что хороший, дургая - что отвратительный) субъективнота
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Sugata KZS
Ребят, что скажете  о русском раст-буке?Насколько там хороший перевод?
https://doc.rust-lang.ru/book
Перевод-то неплохой, но зачем?
источник