Size: a a a

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

2020 March 17

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
Эрик
Это даже выглядит забавно.
Из нашего кода:
let source = resource
 .as_object_ref()
 .get("meta")
 .ok()?
 .as_object()
 .ok()??
 .get("source")
 .ok()?
 .as_object()
 .ok()??
 .get_primitive_value()
 .ok()??;
источник

В

Вафель in Rust — русскоговорящее сообществo
Ivan Dubrov
Из нашего кода:
let source = resource
 .as_object_ref()
 .get("meta")
 .ok()?
 .as_object()
 .ok()??
 .get("source")
 .ok()?
 .as_object()
 .ok()??
 .get_primitive_value()
 .ok()??;
D:

как у вас там весело...
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Ivan Dubrov
Из нашего кода:
let source = resource
 .as_object_ref()
 .get("meta")
 .ok()?
 .as_object()
 .ok()??
 .get("source")
 .ok()?
 .as_object()
 .ok()??
 .get_primitive_value()
 .ok()??;
Зато не анврапы!
источник

Э

Эрик in Rust — русскоговорящее сообществo
Почему-то мне кажется, что у вас там ООПеры какие-то код писали.
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Dmitry
Это chrono?
и хроно и стд

есть вариант чтобы оно само тебе посчитало время/

let st = chrono::NaiveTime::from_num_seconds_from_midnight(sec);
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
use chrono::{NaiveTime, Timelike};

let t = NaiveTime::from_num_seconds_from_midnight(86164, 12_345_678);
assert_eq!(t.hour(), 23);
assert_eq!(t.minute(), 56);
assert_eq!(t.second(), 4);
assert_eq!(t.nanosecond(), 12_345_678);
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
вот полный пример с сайта
источник

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
Это интерфейс а-ля как у JavaScript к JSON-у. Динамический, типа.
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
Berkus Decker
и хроно и стд

есть вариант чтобы оно само тебе посчитало время/

let st = chrono::NaiveTime::from_num_seconds_from_midnight(sec);
from_num_seconds_from_midnight
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
Иван Лещенко
from_num_seconds_from_midnight
Вроде разная логика. Если аптайм 10 минут, то подсчёт идёт от 10 минут с полуночи
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
А вообще есть готовый крейт, который вернёт Duration. https://crates.io/crates/uptime_lib
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Иван Лещенко
Вроде разная логика. Если аптайм 10 минут, то подсчёт идёт от 10 минут с полуночи
midnight тебе тут без разницы, считаешь просто дюрейшен от какой-то базы
источник

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
Эрик
Почему-то мне кажется, что у вас там ООПеры какие-то код писали.
😢 обозвал так обозвал... Это мое творение lol
источник

D

Dmitry in Rust — русскоговорящее сообществo
Berkus Decker
и хроно и стд

есть вариант чтобы оно само тебе посчитало время/

let st = chrono::NaiveTime::from_num_seconds_from_midnight(sec);
Хотелось бы пока без посторонних либ все реализовывать
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
Dmitry
Хотелось бы пока без посторонних либ все реализовывать
Блин, я из-за либ в раст и пришёл...
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Dmitry
Хотелось бы пока без посторонних либ все реализовывать
эммм, ну тогда по сишному делай всё ручками и страдай
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ivan Dubrov
😢 обозвал так обозвал... Это мое творение lol
Прости, бро. Но зачем столько обёрток?
источник

ID

Ivan Dubrov in Rust — русскоговорящее сообществo
Эрик
Прости, бро. Но зачем столько обёрток?
Да это просто динамический интерфейс к статическим структурам. Там по сути одну функция fn get(&self) -> Result<Option<&dyn Object>, ReflectionError> (ну, чуть сложнее).
Он вообще для другого предполагался (сериализация, валидация, и.т.д), но в некоторых местах мы стали его напрямую использовать (есть причины почему не можем статические типы напрямую использовать).
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
Dmitry
Хотелось бы пока без посторонних либ все реализовывать
Вообще я бы на твоём месте выбрал либу. https://docs.rs/uptime_lib/0.1.0/src/uptime_lib/lib.rs.html. Там кросс-платформенное получение аптайма, при этом работа с единым интерфейсом в виде готового Duration
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Иван Лещенко
Вообще я бы на твоём месте выбрал либу. https://docs.rs/uptime_lib/0.1.0/src/uptime_lib/lib.rs.html. Там кросс-платформенное получение аптайма, при этом работа с единым интерфейсом в виде готового Duration
зря ты, дай сишникам чувствовать себя в своей тарелке, хотя бы первое время
источник