Size: a a a

2020 December 01

JC

Julian =) Coffee in Rust Beginners
Ivan Boldyrev
Это всё легаси в том или ином смысле, проекты с бородой. Новых проектов на C (не C++), прямо скажем, нет. Студенческие поделки исключаем.
systemd, pulseaudio, pipewire
источник

JC

Julian =) Coffee in Rust Beginners
pipewire это ну прям вообще не легаси
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
добрый день
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
у меня есть такая структура
pub enum FullBin<A, M> {
   Leaf(A),
   Node(Box<FullBin<A, M>>, Box<FullBin<A, M>>, M),
}


и дальше такой код
            self.left =
               FullBin::Node(
                   Box::new(self.left),
                   Box::new(FullBin::Leaf(a)),
                   self.left.measure().combine(m),
               );

где
self.left : &mut FullBin<A, M>
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
он не компилится очевидно с
error[E0507]: cannot move out of `self.left` which is behind a mutable reference
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
вопрос - можно ли как-то сделать это, не прибегая к Rc?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
я думал насчёт цепочки mem::swap, но мне нужно иметь какое-то болванное дерево, а оно должно содержать как минимум один элемент типа A, а для A у меня нет констрейтов типа Clone
источник

K

Kitsu in Rust Beginners
можешь завернуть в Option<..> и поддерживать внутренний инвариант, что он всегда Some(..)
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Спасибо
источник

G

George in Rust Beginners
Какое решение для раста было бы адекватным в плане переводов?
Поясню. Перепроектирую сейчас в приложении ошибки, благо не успел далеко зайти по разработке API. В exonum предлагают такой вариант ошибок для сервера, как на картинке. То есть на фронтенде пользователю просто покажут title, detail и docs_uri. Однако у нас планируется использование ещё как минимум одновременно русскоязычными пользователями, кроме англоговорящих. А ещё немецкий язык. Я читал, что в таких случаях вместо самих ошибок принято передавать только некоторое название константы, типа ERORR_USER_DONT_HAVE_PERMISSIONS и список аргументов для подстановки, а на фронте под этой константой лежит функция, которая принимает аргументы и форматирует пользовательский вывод, в том числе с учётом языка страницы или типо того. Однако если так делать, то список ошибок у фронтендеров превратится в огромный файл с кучей констант. Какие ещё в индустрии используются практики?
источник

ВВ

Вадим Великодный... in Rust Beginners
George
Какое решение для раста было бы адекватным в плане переводов?
Поясню. Перепроектирую сейчас в приложении ошибки, благо не успел далеко зайти по разработке API. В exonum предлагают такой вариант ошибок для сервера, как на картинке. То есть на фронтенде пользователю просто покажут title, detail и docs_uri. Однако у нас планируется использование ещё как минимум одновременно русскоязычными пользователями, кроме англоговорящих. А ещё немецкий язык. Я читал, что в таких случаях вместо самих ошибок принято передавать только некоторое название константы, типа ERORR_USER_DONT_HAVE_PERMISSIONS и список аргументов для подстановки, а на фронте под этой константой лежит функция, которая принимает аргументы и форматирует пользовательский вывод, в том числе с учётом языка страницы или типо того. Однако если так делать, то список ошибок у фронтендеров превратится в огромный файл с кучей констант. Какие ещё в индустрии используются практики?
Наверное, fluent и gettext — самые близкие к продакшену решения.
источник

ВВ

Вадим Великодный... in Rust Beginners
источник

ВВ

Вадим Великодный... in Rust Beginners
источник

G

George in Rust Beginners
Вадим Великодный
Наверное, fluent и gettext — самые близкие к продакшену решения.
Фронт не на расте - React. И вот туда и будет уходить именованная константа.
В том же клиенте ВК это вшито так, но это клиентские названия Vk Messenger, а не парсинг ошибок.
источник

G

George in Rust Beginners
вот так
источник

AZ

Alexey Zinchenko in Rust Beginners
George
вот так
Странно, что украинский - uk, а не ua.
источник

G

George in Rust Beginners
и ошибки тоже. видимо, там оно размечено как-то типо "не удался запрос файла - выведу вот это", то есть даже без связи с сервером узнаётся. Хм.
источник

G

George in Rust Beginners
Alexey Zinchenko
Странно, что украинский - uk, а не ua.
Клиент не мой, клиент ВКшный ¯\_(ツ)_/¯
источник

JC

Julian =) Coffee in Rust Beginners
Alexey Zinchenko
Странно, что украинский - uk, а не ua.
ua это страна, uk это язык
источник

AZ

Alexey Zinchenko in Rust Beginners
Julian =) Coffee
ua это страна, uk это язык
Да, не прав.
источник