Трейт LowerHex
Трейт LowerHex используется для форматирования значений
в шестнадцатеричную строку с символами нижнего регистра
(0-9 и a-f). Он лежит в основе заполнителя
{:x} и связан с методом fmt, который принимает
форматтер и записывает в него представление значения. Реализация
этого трейта позволяет использовать тип в макросах форматирования
с спецификатором x.
Чаще всего трейт LowerHex используется неявно через
макросы println!, format! и другие. Для
целочисленных типов он уже реализован стандартной библиотекой.
Параметром метода fmt выступает изменяемая ссылка на
форматтер, в который записывается результат.
Синтаксис
impl LowerHex for Type
{
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result
{
// ...
}
}
Пример
Давайте отформатируем целое число 255 с помощью
заполнителя {:x}, который опирается на трейт
LowerHex:
fn main()
{
let res = format!("{:x}", 255);
println!("{}", res);
}
Результат выполнения кода:
"ff"
Пример
Давайте отформатируем число 26 и выведем результат
напрямую через макрос println!:
fn main()
{
println!("{:x}", 26);
}
Результат выполнения кода:
1a
Пример
Давайте реализуем трейт LowerHex для собственной
структуры Point и отформатируем её:
use std::fmt;
struct Point
{
x: u8,
y: u8,
}
impl fmt::LowerHex for Point
{
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result
{
write!(f, "{:x}:{:x}", self.x, self.y)
}
}
fn main()
{
let p = Point { x: 255, y: 16 };
let res = format!("{:x}", p);
println!("{}", res);
}
Результат выполнения кода:
"ff:10"
Смотрите также
-
заполнитель
hex,
который форматирует значение в нижнем регистре шестнадцатеричной системы -
трейт
UpperHex,
который форматирует значение в верхнем регистре шестнадцатеричной системы -
трейт
Formatter,
который предоставляет доступ к настройкам форматирования -
макрос
format!,
который создаёт строку с помощью форматирования