FormatStatement Manual
Typically a MAXON API interface or a data type defines a "ToString()" function. This function returns a maxon::String describing the given object. Such a "ToString()" function accepts a maxon::FormatStatement argument that can contain additional information on how the object should be described.
A maxon::FormatStatement object contains string stored under a given string identifier.
A "ToString()" function can read information from the given maxon::FormatStatement to define how it formats the returned maxon::String .
// This example shows an implementation of ToString() on a custom data type. // The function formats the result maxon::String based on the given FormatStatement argument.// check FormatStatement if (formatStatement) { const maxon::CString format = formatStatement->Get( "Format" );
// format result maxon::String result; if (longFormat) result = FormatString ( "Value A: @, Value B: @, Value C: @" , _a, _b, _c); else result = FormatString ( "@, @, @" , _a, _b, _c);
// return formatted string return result; }
When calling a "ToString()" function the call can hand over a maxon::FormatStatement argument to modify the behaviour of the function.
For more information about the output syntax see Output Syntax .
// long format maxon::FormatStatement longFormat; longFormat. Set ( "Format" _cs, "Long" _cs) iferr_return ; const maxon::String longFormatString = triplet.ToString(&longFormat); DiagnosticOutput ( "@" , longFormatString);
// short format maxon::FormatStatement shortFormat; shortFormat. Set ( "Format" _cs, "Short" _cs) iferr_return ; const maxon::String shortFormatString = triplet.ToString(&shortFormat); DiagnosticOutput ( "@" , shortFormatString);
// default format DiagnosticOutput ( "@" , triplet);