Printing for Custom Types
To use custom types for print
and debug
, or convert a custom type into a string,
it is necessary that the following functions be registered (assuming the custom type
is T: Display + Debug
).
Function | Signature | Typical implementation | Usage |
---|---|---|---|
to_string | |x: &mut T| -> String | x.to_string() | converts the custom type into a string |
to_debug | |x: &mut T| -> String | format!("{:?}", x) | converts the custom type into a string in debug format |
The following functions are implemented using to_string()
or to_debug()
by default, but can be
overloaded with custom versions.
Function | Signature | Default | Usage |
---|---|---|---|
print | |x: &mut T| -> String | to_string | converts the custom type into a string for the print statement |
debug | |x: &mut T| -> String | to_debug | converts the custom type into a string for the debug statement |
+ operator | |s: &str, x: T| -> String | to_string | concatenates the custom type with another string |
+ operator | |x: &mut T, s: &str| -> String | to_string | concatenates another string with the custom type |
+= operator | |s: &mut ImmutableString, x: T| | to_string | appends the custom type to an existing string |