Trait surgeshaper_asym::imports::imports::Debug 1.0.0[−][src]
Expand description
?
formatting.
Debug
should format the output in a programmer-facing, debugging context.
Generally speaking, you should just derive
a Debug
implementation.
When used with the alternate format specifier #?
, the output is pretty-printed.
For more information on formatters, see the module-level documentation.
This trait can be used with #[derive]
if all fields implement Debug
. When
derive
d for structs, it will use the name of the struct
, then {
, then a
comma-separated list of each field’s name and Debug
value, then }
. For
enum
s, it will use the name of the variant and, if applicable, (
, then the
Debug
values of the fields, then )
.
Stability
Derived Debug
formats are not stable, and so may change with future Rust
versions. Additionally, Debug
implementations of types provided by the
standard library (libstd
, libcore
, liballoc
, etc.) are not stable, and
may also change with future Rust versions.
Examples
Deriving an implementation:
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {:?}", origin), "The origin is: Point { x: 0, y: 0 }");
Manually implementing:
use std::fmt;
struct Point {
x: i32,
y: i32,
}
impl fmt::Debug for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("Point")
.field("x", &self.x)
.field("y", &self.y)
.finish()
}
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {:?}", origin), "The origin is: Point { x: 0, y: 0 }");
There are a number of helper methods on the Formatter
struct to help you with manual
implementations, such as debug_struct
.
Debug
implementations using either derive
or the debug builder API
on Formatter
support pretty-printing using the alternate flag: {:#?}
.
Pretty-printing with #?
:
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {:#?}", origin),
"The origin is: Point {
x: 0,
y: 0,
}");
Required methods
Formats the value using the given formatter.
Examples
use std::fmt;
struct Position {
longitude: f32,
latitude: f32,
}
impl fmt::Debug for Position {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_tuple("")
.field(&self.longitude)
.field(&self.latitude)
.finish()
}
}
let position = Position { longitude: 1.987, latitude: 2.983 };
assert_eq!(format!("{:?}", position), "(1.987, 2.983)");
assert_eq!(format!("{:#?}", position), "(
1.987,
2.983,
)");
Implementations on Foreign Types
1.16.0[src]impl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.16.0[src]impl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.16.0[src]impl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.9.0[src]impl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
impl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
Implementors
impl Debug for ControlGroup
impl Debug for ControlType
impl Debug for WaveshaperParam
impl Debug for CharacterMode
impl Debug for EffectType
impl Debug for EnvelopeMode
impl Debug for FilterBlockConfiguration
impl Debug for FilterParam
impl Debug for FilterSubType
impl Debug for FilterType
impl Debug for FilterTypeIIR
impl Debug for FlangerType
impl Debug for FlangerWave
impl Debug for FmConfiguration
impl Debug for FxBypassType
impl Debug for ModSrcType
impl Debug for OscillatorParam
impl Debug for OscillatorType
impl Debug for WaveshapeType
impl Debug for WindowType
impl Debug for FilterUnit
impl Debug for IsPopulated
impl Debug for KbmFileName
impl Debug for MappingData
impl Debug for MappingPresent
impl Debug for MpeEnableSwitch
impl Debug for OscillatorProcessBlockCfg
impl Debug for PatchDataSize
impl Debug for PitchBendRange
impl Debug for PitchBendValue
impl Debug for SclFileName
impl Debug for ShouldKeepPlaying
impl Debug for TuningData
impl Debug for TuningPresent
impl Debug for WaveTableCategoryID
impl Debug for WaveTableDataFilename
impl Debug for WaveTableFilename
impl Debug for WaveTableID
impl Debug for WaveTableWavFilename
impl Debug for ZoomFactor
Equivalent to <f32 as core::fmt::Debug>::fmt
.
Example
let v = AtomicF32::new(40.0);
assert_eq!(format!("{:?}", v), format!("{:?}", 40.0f32));
Equivalent to <f64 as core::fmt::Debug>::fmt
.
Example
let v = AtomicF64::new(40.0);
assert_eq!(format!("{:?}", v), format!("{:?}", 40.0));
impl Debug for ControlStyle
impl Debug for ParamUserData
impl Debug for ParameterMeta
impl Debug for QuadFilterChain
impl Debug for QuadFilterChainState
impl Debug for QuadFilterUnitState
impl Debug for WaveshaperState
impl Debug for WaveshaperUnit
Format the array using Debug
and apply the formatting parameters used
to each element.
The array is shown in multiline style.