Size: a a a

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

2020 April 20

V

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

V

Vetro in Rust — русскоговорящее сообществo
Warp + sqlx с поддержкой sqlite оч радует
источник

V

Vetro in Rust — русскоговорящее сообществo
вывод ошибок правда хромает в варпе, либо я еще не до конца разобрался
источник

V

Vetro in Rust — русскоговорящее сообществo
приходится оборачивать в свой тип, чтобы нормально возвращать
Result<warp::Reply, warp::Rejection>
источник

V

Vetro in Rust — русскоговорящее сообществo
или это обычная практика, создания для своего бинарника отдельного перечисления всех возможных ошибок приложения?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Vetro
или это обычная практика, создания для своего бинарника отдельного перечисления всех возможных ошибок приложения?
Ну, в общем-то да. Иногда могут делать как-то иначе, но обычно у бинарника есть свои ошибки и их надо как-то обрабатывать без паники.
источник

V

Vetro in Rust — русскоговорящее сообществo
просто думал использовать некий абстрактный контейнер любой ошибки, anyhow в принципе подошел бы, но он не работает с трейтом Reject в варпе, поэтому смотрю на другой вариант, определить свой тип и с помощью snafu пихать контексты выполнения в ошибки
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
У меня есть итератор impl Iterator<Item = T> и функция Fn(T) -> bool. Я хочу сделать из итератора два вектора, таких, что в одном из них те элементы, на которых функция выдаёт true, а в другом — на которых выдаёт false.
Есть ли что-нибудь соответствующее в стандартной библиотеке, чтобы не придумывать свою эффективную реализацию?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Условно, я хочу одновременно filter(f) и filter(|x| !f(x))
источник

D

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

D

Denis in Rust — русскоговорящее сообществo
let (even, odd): (Vec<i32>, Vec<i32>) = a
   .iter()
   .partition(|&n| n % 2 == 0);

(из доки)
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Denis
да, partition
О, спасибо
источник

D

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

PK

Pavel Kvasnikov in Rust — русскоговорящее сообществo
Первый раз встречаюсь с такой задачей как "data deduplication", чем это отличается от обычного архивирования?
источник

PK

Pavel Kvasnikov in Rust — русскоговорящее сообществo
Если более конкретно зачем нужно вот это https://github.com/nlfiedler/fastcdc-rs Разбил он мне байты на чанки и что с этим можно дальше делать?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Есть какой-нибудь крейт, который упрощает написание derive-макросов? Мне нужно совершенно стандартную вещь сделать, пропарсить атрибуты на структуре, и на их основе сгенерить имплементацию трейта.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Я ща пытаюсь вручную делать это через syn и это занимает серьёзно больше усилий, чем хотелось бы
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Есть какой-нибудь крейт, который упрощает написание derive-макросов? Мне нужно совершенно стандартную вещь сделать, пропарсить атрибуты на структуре, и на их основе сгенерить имплементацию трейта.
Я это недавно делал через frunk и Generic/LabelledGeneric, но именно derive макрос я в итоге не писал.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Я генерирую HTTP-запросы из структур
Тут, кажется, именно derive-макрос — лучший вариант
Мне нужно что-то вроде:
#[derive(Request)]
#[method(POST)]
#[url("/path/{with_params}")]
struct A {
   #[param(url)]
   with_params: String,
   #[param(query)]
   some_param: i32,
   #[param(form)]
   some_other_param: String,
}
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Т.е. идея в том, чтобы написать реализации данного трейта для продукта и копродукта из frunk, дальше воспользоваться derive'ом LabelledGeneric и написать свой трейт как:
impl MyTrait for HNil { ... }
impl<'a, A, AS: HList + MyTrait> MyTrait for HCons<&'a Field<...>, AS> { ... }

impl MyTrait for MyType {
  fn my_method(&self, ...) {
    LabelledGeneric::from(self).my_method(...)
  }
}
источник