Исправление сериализации Epoch #13
No reviewers
Labels
No labels
Вид/Баг
Вид/Безопасность
Вид/Документация
Вид/Изучение
Вид/Тестирование
Вид/Улучшение
Приоритет
Критический
Приоритет
Высокий
Приоритет
Низкий
Приоритет
Средний
Рассмотрено
Дубликат
Рассмотрено
Не будет исправленно
Рассмотрено
Неверно
Рассмотрено
Подтверждено
Совместимость/Сломанная
Статус
Заблокированно
Статус
Заброшено
Статус
Требуется больше информации
Тег/NarodMon Совместимость
Хорошая первая issue
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: iotishnik/server#13
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/hifitime-serde"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Явно забыл добавить её ранее
@ -0,0 +54,4 @@
E: de::Error,
{
return Ok(Epoch::from_unix_seconds(
value.parse().map_err(de::Error::custom)?
API народмона также разрешает отправлять юникс-время в 16-ричном виде. Предполагаю, растовый
parse()
по умолчанию парсит только decimal и выдаст ошибку на hex. Верно?Чаво? Это где написано? Впервые слышу.
А вот)
А, хорошо подметил. Тогда доделаю как смогу.
Предполагаю, что пользуются этим не один-два человека, экономить трафик все хотят. Реализацию я вижу вида:
Честно не понимаю, как они это на своём сервере на баш-скриптах обрабатывают. Гениальный API.
[То же самое написал в тг-чате]
Ещё можно, знаешь, смотреть по префиксу таймстемпа.
Например, сейчас префикс 1717 в десятеричном и 0x665 в хексе.
1717228768
0x665ad4e0
Через N секунд обновляем префиксы, если нужно.
Когда приходит time от девайса, пробуем распарсить как десятиричное число, и если получается – то сравниваем по префиксам. Иначе пробуем парсить как хекс.
Мне кажется легче всего отличить по длине строки. 8 символов => значит hex.
Но ведь когда-то будет не 8 символов, а больше)
Обновлять надо. Похоже на мой вариант с префиксами, кстати. Да, по длине проще.
Это произойдёт 7 Февраля 2106г. в 06:28:15 UTC, так что сойдёт.
Заметка: байты эти в BE, а не LE
@ -0,0 +35,4 @@
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
formatter.write_str(
"a (string, representing a timestamp in number or hex form) or a number",
string representing a timestamp in a decimal or hex number
Не, совсем не звучит. "Строка, представляющая из себя таймстамп в цифре(?) или шестнадцатеричное число". Сейчас подправлю чтобы точно не было сомнений.
11c830c3f3
to9edfcb3af7