#include <bdld_datumutil.h>
|
static bsl::ostream & | safeTypedPrint (bsl::ostream &outputStream, const Datum &object, int level=0, int spacesPerLevel=4) |
|
static bsl::ostream & | typedPrint (bsl::ostream &outputStream, const Datum &object, int level=0, int spacesPerLevel=4) |
|
This struct serves as a namespace for utility functions that operate on bdld::Datum
objects.
◆ safeTypedPrint()
static bsl::ostream & bdld::DatumUtil::safeTypedPrint |
( |
bsl::ostream & |
outputStream, |
|
|
const Datum & |
object, |
|
|
int |
level = 0 , |
|
|
int |
spacesPerLevel = 4 |
|
) |
| |
|
static |
Write the value of the specified object
to the specified outputStream
in a human-readable format that is non-ambiguous regarding the type of the bdld::Datum
value printed, and return a reference to the modifiable outputStream
. Optionally specify an initial indentation level
, whose absolute value is incremented recursively for nested objects. If level
is specified, optionally specify spacesPerLevel
, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect. Note that safeTypedPrint
explicitly allows self- referential data structures, or in other words data structures with cycles, to be printed. When a cycle is detected, that subgraph is not printed again. Also note that the human-readable format is not fully specified, and can change without notice.
◆ typedPrint()
static bsl::ostream & bdld::DatumUtil::typedPrint |
( |
bsl::ostream & |
outputStream, |
|
|
const Datum & |
object, |
|
|
int |
level = 0 , |
|
|
int |
spacesPerLevel = 4 |
|
) |
| |
|
static |
Write the value of the specified object
to the specified outputStream
in a human-readable format that is non-ambiguous regarding the type of the bdld::Datum
value printed, and return a reference to the modifiable outputStream
. Optionally specify an initial indentation level
, whose absolute value is incremented recursively for nested objects. If level
is specified, optionally specify spacesPerLevel
, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect. The behavior is undefined unless the data structure represented by object
is a graph without any cycles. In case of an untrusted data structure, use safeTypedPrint
. Note that the human-readable format is not fully specified, and can change without notice.
The documentation for this struct was generated from the following file: