public abstract static class TruffleStringBuilder.ToStringNode extends Node
TruffleString
.Node.Child, Node.Children
Modifier and Type | Method and Description |
---|---|
static TruffleStringBuilder.ToStringNode |
create()
Create a new
TruffleStringBuilder.ToStringNode . |
TruffleString |
execute(TruffleStringBuilder sb)
Materialize this string builder to a
TruffleString . |
abstract TruffleString |
execute(TruffleStringBuilder sb,
boolean lazy)
Materialize this string builder to a
TruffleString . |
static TruffleStringBuilder.ToStringNode |
getUncached()
Get the uncached version of
TruffleStringBuilder.ToStringNode . |
accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, toString
public final TruffleString execute(TruffleStringBuilder sb)
TruffleString
.public abstract TruffleString execute(TruffleStringBuilder sb, boolean lazy)
TruffleString
.
If lazy
is true
, sb
's internal storage will be re-used even if
there are unused bytes. Since the resulting string will have a reference to sb
's
internal storage, and TruffleString
currently does not resize/trim the
substring's internal storage at any point, the lazy
variant effectively creates a
memory leak! The caller is responsible for deciding whether this is acceptable or not.public static TruffleStringBuilder.ToStringNode create()
TruffleStringBuilder.ToStringNode
.public static TruffleStringBuilder.ToStringNode getUncached()
TruffleStringBuilder.ToStringNode
.