Какой идиоматический c способ конвертировать & i64 в & [u8; 8]? - PullRequest
2 голосов
/ 25 апреля 2020

Я делаю хэширование с blake2 ящиком. Он принимает только куски байтов &[u8]. Большая часть данных (String) может быть без проблем преобразована в байт, но отметка времени (i64) не может быть. Есть ли кроссплатформенный, идиоматический c способ сделать такое преобразование? Порядковый номер i64 обеспечивается путем вызова to_le, прежде чем что-либо делать с ним.

1 Ответ

6 голосов
/ 25 апреля 2020

Тип i64 имеет метод to_le_bytes, который возвращает [u8; 8], а поскольку i64 является типом копирования, его легко вызвать, а затем передать ссылку на возвращенный массив , Это не будет ссылка на те же байты, что и исходный i64, так как он возвращает принадлежащий массив, а не ссылку, но это не должно иметь значения в этом случае.

...