pub trait Octal {
// Required method
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}Expand description
o formatting.
The Octal trait should format its output as a number in base-8.
For primitive signed integers (i8 to i128, and isize),
negative values are formatted as the two’s complement representation.
The alternate flag, #, adds a 0o in front of the output.
For more information on formatters, see the module-level documentation.
§Examples
Basic usage with i32:
let x = 42; // 42 is '52' in octal
assert_eq!(format!("{x:o}"), "52");
assert_eq!(format!("{x:#o}"), "0o52");
assert_eq!(format!("{:o}", -16), "37777777760");Implementing Octal on a type:
use std::fmt;
struct Length(i32);
impl fmt::Octal for Length {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let val = self.0;
fmt::Octal::fmt(&val, f) // delegate to i32's implementation
}
}
let l = Length(9);
assert_eq!(format!("l as octal is: {l:o}"), "l as octal is: 11");
assert_eq!(format!("l as octal is: {l:#06o}"), "l as octal is: 0o0011");Required Methods§
1.0.0 · Sourcefn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Formats the value using the given formatter.
§Errors
This function should return Err if, and only if, the provided Formatter returns Err.
String formatting is considered an infallible operation; this function only
returns a Result because writing to the underlying stream might fail and it must
provide a way to propagate the fact that an error has occurred back up the stack.
Implementors§
impl Octal for i8
impl Octal for i16
impl Octal for i32
impl Octal for i64
impl Octal for i128
impl Octal for isize
impl Octal for u8
impl Octal for u16
impl Octal for u32
impl Octal for u64
impl Octal for u128
impl Octal for usize
impl Octal for bf16
Available on non-
target_arch=spirv only.impl Octal for Flags
impl Octal for Functionality
impl Octal for I2CMessageFlags
impl Octal for AtFlags
impl Octal for FallocateFlags
impl Octal for nix::fcntl::FdFlag
impl Octal for OFlag
impl Octal for RenameFlags
impl Octal for SealFlag
impl Octal for SpliceFFlags
impl Octal for DeleteModuleFlags
impl Octal for ModuleInitFlags
impl Octal for MntFlags
impl Octal for nix::mount::linux::MsFlags
impl Octal for nix::mqueue::FdFlag
impl Octal for MQ_OFlag
impl Octal for InterfaceFlags
impl Octal for PollFlags
impl Octal for CloneFlags
impl Octal for EpollCreateFlags
impl Octal for EpollFlags
impl Octal for EfdFlags
impl Octal for AddWatchFlags
impl Octal for InitFlags
impl Octal for MemFdCreateFlag
impl Octal for MRemapFlags
impl Octal for MapFlags
impl Octal for MlockAllFlags
impl Octal for nix::sys::mman::MsFlags
impl Octal for ProtFlags
impl Octal for Persona
impl Octal for Options
impl Octal for QuotaValidFlags
impl Octal for SaFlags
impl Octal for SfdFlags
impl Octal for MsgFlags
impl Octal for SockFlag
impl Octal for Mode
impl Octal for SFlag
impl Octal for FsFlags
impl Octal for ControlFlags
impl Octal for InputFlags
impl Octal for LocalFlags
impl Octal for OutputFlags
impl Octal for TimerFlags
impl Octal for TimerSetTimeFlags
impl Octal for WaitPidFlag
impl Octal for AccessFlags
impl Octal for BigInt
impl Octal for BigUint
impl Octal for m128
impl Octal for m128d
impl Octal for m128i
impl Octal for m256
impl Octal for m256d
impl Octal for m256i
impl Octal for f32x4
impl Octal for f32x8
impl Octal for f64x2
impl Octal for f64x4
impl Octal for i8x16
impl Octal for i8x32
impl Octal for i16x8
impl Octal for i16x16
impl Octal for i32x4
impl Octal for i32x8
impl Octal for i64x2
impl Octal for i64x4
impl Octal for u8x16
impl Octal for u8x32
impl Octal for u16x8
impl Octal for u16x16
impl Octal for u32x4
impl Octal for u32x8
impl Octal for u64x2
impl Octal for u64x4
impl Octal for PollEvents
impl Octal for f16
Available on non-
target_arch=spirv only.