Size: a a a

2020 November 06

a

antuan in Rust Beginners
Неа. Если значение возвращается из функции в виде Result<..., Error>, то позаимствовать нельзя
источник

A

Adatan in Rust Beginners
Я слышал, что Regex, вызванные в коде при каждом вызове будут компилироваться заново, это правда?
источник

CH

Crouching Homeless S... in Rust Beginners
I suppose
источник

G

George in Rust Beginners
Adatan
Я слышал, что Regex, вызванные в коде при каждом вызове будут компилироваться заново, это правда?
Из документации следует, что регулярка компилируется в момент вызова ::new, что подтверждается на примере с lazy_static.
Соответственно, конструкция вида

let re = regex::Regex::new(r"(a|b)");

Даст уже скомпилированное выражение, и на каждый. re.is_match() оно не будет компилироваться заново.
источник

G

George in Rust Beginners
Даже в питоне оно на каждый вызов не компилируется, откуда ж такие слухи? О_о
источник

RG

Random Guy in Rust Beginners
George
Из документации следует, что регулярка компилируется в момент вызова ::new, что подтверждается на примере с lazy_static.
Соответственно, конструкция вида

let re = regex::Regex::new(r"(a|b)");

Даст уже скомпилированное выражение, и на каждый. re.is_match() оно не будет компилироваться заново.
3 месяца назад бенчил, compile весь проц сжирает, с lazy_static сильно быстрее работает
источник

A

Adatan in Rust Beginners
George
Даже в питоне оно на каждый вызов не компилируется, откуда ж такие слухи? О_о
Я какую-то стать читал
источник

A

Adatan in Rust Beginners
И там в конце говорили, что всегда в lazy_static нужно совать регулярки
источник

A

Adatan in Rust Beginners
И как вообще lazy_static работает под капотом?
источник

MB

Mikail Bagishov in Rust Beginners
Ну более-менее Mutex<Option<T>>
источник

MB

Mikail Bagishov in Rust Beginners
Можешь почитать исходники once_cell::sync::Lazy, они более читаемые
источник

A

Adatan in Rust Beginners
Оке, спс
источник

E

Evgeniy in Rust Beginners
Всем привет! Ребят, подскажите пожалуйста. Можно как-то определить, есть ли у вектора определённое значение?
источник

RG

Random Guy in Rust Beginners
iter().any(|x| x==y)
источник

E

Evgeniy in Rust Beginners
Random Guy
iter().any(|x| x==y)
Спасибо большое
источник

NL

Nick Linker in Rust Beginners
Evgeniy
Всем привет! Ребят, подскажите пожалуйста. Можно как-то определить, есть ли у вектора определённое значение?
А если нужно найти, то find, а если найти индекс, то position.
источник

E

Evgeniy in Rust Beginners
Nick Linker
А если нужно найти, то find, а если найти индекс, то position.
Круто)) спасибо )
источник

А⚙

Антон ⚙️ in Rust Beginners
Ребята, извините, но я вынужден скипнуть 12 с половиной тысяч сообщений
источник

JM

John Meow in Rust Beginners
Антон ⚙️
Ребята, извините, но я вынужден скипнуть 12 с половиной тысяч сообщений
ок
источник

a

antuan in Rust Beginners
привет. помогите с энумами, пожалуйста.
примерно такой код:
struct Foo {}
struct Bar {}

enum Kind {
   Foo(Foo),
   Bar(Bar),
}

impl Kind {
   pub fn name(&self) -> String {
       ...
   }
}

struct AnotherStruct {
   kind: String,
   ...
}

fn get_by_enum_name(arg: Kind) -> Vec<AnotherStruct> {
   Ok(diesel_table
           .filter(diesel_table::kind.eq(arg.name()))
           .load::<AnotherStruct>(&POOL)
           .await?)
}

как это делают нормальные люди? я не хочу передавать Kind в аргумент, потому что для этого мне придется для каждого kind'а создать какую-то stub-структуру, чтобы иметь возможность передавать kind в качестве аргумента. мне же нужно только "название" из энума. делать отдельный энум и дублировать в него те же значения, понятное дело, тоже не хочется.
второй вопрос: как вменяемо нарыть name? :)
источник