This is used for the serialization system to represent values
before the actual snapshots are written and is also exposed to
dynamic redaction functions.
Some enum variants are intentionally not exposed to user code.
It’s generally recommended to construct content objects by
using the From trait and by using the
accessor methods to assert on it.
While matching on the content is possible in theory it is
recommended against. The reason for this is that the content
enum holds variants that can “wrap” values where it’s not
expected. For instance if a field holds an Option<String>
you cannot use pattern matching to extract the string as it
will be contained in an internal Some variant that is not
exposed. On the other hand the as_str method will
automatically resolve such internal wrappers.
If you do need to pattern match you should use the
resolve_inner method to resolve such internal wrappers.
This resolves the innermost content in a chain of
wrapped content.
For instance if you encounter an Option<Option<String>>
field the content will be wrapped twice in an internal
option wrapper. If you need to pattern match you will
need in some situations to first resolve the inner value
before such matching can take place as there is no exposed
way to match on these wrappers.
This method does not need to be called for the as_
methods which resolve automatically.