Ayrat
DateTimeKind.Utc ?
он просто оффсет разный запишет с разным Kind
Vladimir
у меня просто как всегда есть пример из пульсара на это) https://github.com/fsharplang-ru/pulsar-client-dotnet/blob/develop/src/Pulsar.Client/Common/Tools.fs#L73-L76
Shub
Я вот только не понимаю, зачем это все
How dare you. Ты противник св. Влашина? Сжечь
Roman
How dare you. Ты противник св. Влашина? Сжечь
Да не было просто стандартного тогда
Vladimir
и какой там кайнд на выходе?
в первой функции int64) во второй думаю utc, раз к utc прибавляем :)
Roman
int64!
Скорее float
Ayrat
Скорее float
ну там же явный каст
Ayrat
мы наверное о разном коде
Roman
А, не увидел
Roman
Хотя все ещё не вижу, где явный каст
Shub
Да не было просто стандартного тогда
Кастомный резалт это еще ок. А вот за NonNegativeInteger и String50 я б его в розыск подал
Ayrat
Хотя все ещё не вижу, где явный каст
let UTC_EPOCH = DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); let convertToMsTimestamp dateTime = let elapsed = dateTime - UTC_EPOCH elapsed.TotalMilliseconds |> int64
Ayrat
|> int64!
Roman
Ок, да, я про другой код говорил)
Roman
Кастомный резалт это еще ок. А вот за NonNegativeInteger и String50 я б его в розыск подал
Ну у вас они совсем бестолково сделаны были. Добавляли церемоний, не добавляя гарантий. Худшее из двух подходов
Roman
Особенно учитывая наличие uint32
Ayrat
Особенно учитывая наличие uint32
но это не то же самое
Ayrat
!11
Roman
но это не то же самое
В их реализации считай то же самое, только хуже)
Shub
Ну у вас они совсем бестолково сделаны были. Добавляли церемоний, не добавляя гарантий. Худшее из двух подходов
Ну я не говорю, что у него прям все идеи провальные. Наши как-то заняли позицию «если этого нет у Влашина - это нефункционально и не ДДД». В результате наши 10херы начинают строить рельсы и прочие танцы на взлетке
Ayrat
NonNegativeInteger меньше чем uint32 вот например 3_000_000_000 в uint32 влезет, а в NonNegativeInteger нет!
Ayrat
можно получить приколов с оверфлоу на ровном месте
Shub
А так у него много чего потеряло актуальность
Vladislav
Ayrat
В их реализации считай то же самое, только хуже)
не, надо будет проверять что число в uint32 это int32
Ayrat
постоянно проверять
Ayrat
йобу дашь
Shub
можно получить приколов с оверфлоу на ровном месте
Ага. Можно например запилить проект так, что 100% кода находится в anti corruption layer
Roman
можно получить приколов с оверфлоу на ровном месте
Так у них там тоже можно было найти -12 внутри этого неотрицательного юниона)
Ayrat
Так у них там тоже можно было найти -12 внутри этого неотрицательного юниона)
Не, я их код осуждаю если чо. Но заменить NonNegativeInt32 на UnsignedInt не получится
Vladislav
Можно не надо
Vladimir
Есть. DateTime.UnixEpoch
ничоси это в новых дотнетах
Ayrat
Я вот пишу говнокод и мне ок. Сегодня я уже рассказывал что получил в лицо "null" вместо ексепшна или там хз, null нормального при чтении конфига На null я бы хотя бы сразу упал c NRE Считаю что тот кто вернул мне строкой "null" - пидарас
Ayrat
я его знаю. Он между прочим с тобой в одном офисе сидит @eglyph
Roman
я его знаю. Он между прочим с тобой в одном офисе сидит @eglyph
О, значит, можно ему отвёртку в бок организовать
Ayrat
О, значит, можно ему отвёртку в бок организовать
Хорошего человека Заду не назовут
Ayrat
Kapil Zadoo
Shub
Кстати, если б не тот Сергей из Дублина - я бы поехал кукушечкой давно
Roman
Хорошего человека Заду не назовут
А он, прикинь, так же там сидит, не понимает твой код, и грит, какая фамилия такой и код
Ayrat
Result<‘a, exn> например часто встречается в нашей кб
котлин кстати запрещает возвращать из функции Result прикинь
Shub
Жесть
Ayrat
Жесть
https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/result.md#limitations
Ayrat
Жесть
У них даже объяснение есть
Ayrat
почитайте
Ayrat
Всм
всм?
Ayrat
The Result class is not designed to be used directly as the result type of general functions and such use produces an error (see Limitations). In general, if some API requires its callers to handle failures locally (immediately around or next to the invocation), then it should use nullable types, when these failures do not carry additional business meaning, or domain-specific data types to represent its successful results and failures with any additional business-related data that is needed to process these failures. Consider this hypothetical API design: fun findUserByName(name: String): Result<User> // ERROR If the only kind of failure we might be interested in handling is the failure to find the user with the given name, then the following signature shall be used: fun findUserByName(name: String): User? // Ok
Vasily
Ошибка там, естественно, в отсутствии UTC
Ayrat
Ошибка там, естественно, в отсутствии UTC
не понимаю почему. DateTimeOffset должен нормально собираться. он просто другой оффсет в себя ест
Anonymous
почитайте
Там же написано что это временно
Ayrat
я пастанул
Vasily
Где посмотреть
В коммитах бота
Vladislav
А
Ayrat
Короче, приходится свою манатку городить чтобы Result иметь
Ayrat
в котлене
Ayrat
это прям странно
Ayrat
Нулы возвращать что ль
ну да. они так и пишут
Ayrat
Но, надо сказать что нулаблы в котлене огонь
Ayrat
нулаблы здорового человека и работать с ними удобно
Ayrat
компилятор прям ВЫВОЗИТ
Ayrat
и джаву вывозит
Ayrat
(интероп то есть)
Ayrat
то есть там прям NPE поймать сложно. Поэтому нулаблы ок
Ayrat
и, ЗАМЕЧУ, никаких аннотаций