func (t *RichTextValue) String() string {
	return fmt.Sprintf(`{"attrs":%s,"val":"%s"}`, t.attrs.Marshal(), t.value)
}
String returns the string representation of this value.
package json
import (
	"fmt"
	"strings"
	"unicode/utf16"
	"go.uber.org/zap"
	"github.com/yorkie-team/yorkie/internal/log"
	"github.com/yorkie-team/yorkie/pkg/document/time"
)
func InitialRichTextNode() *RGATreeSplitNode {
	return NewRGATreeSplitNode(initialNodeID, &RichTextValue{
		attrs: NewRHT(),
		value: "",
	})
}
type RichTextValue struct {
	attrs *RHT
	value string
}
func NewRichTextValue(attrs *RHT, value string) *RichTextValue {
	return &RichTextValue{
		attrs: attrs,
		value: value,
	}
}
func (t *RichTextValue) Attrs() *RHT {
	return t.attrs
}
func (t *RichTextValue) Value() string {
	return t.value
}
func (t *RichTextValue) Len() int {
	encoded := utf16.Encode([]rune(t.value))
	return len(encoded)
}