...

Source file src/github.com/aws/smithy-go/encoding/xml/encoder.go

Documentation: github.com/aws/smithy-go/encoding/xml

     1  package xml
     2  
     3  // writer interface used by the xml encoder to write an encoded xml
     4  // document in a writer.
     5  type writer interface {
     6  
     7  	// Write takes in a byte slice and returns number of bytes written and error
     8  	Write(p []byte) (n int, err error)
     9  
    10  	// WriteRune takes in a rune and returns number of bytes written and error
    11  	WriteRune(r rune) (n int, err error)
    12  
    13  	// WriteString takes in a string and returns number of bytes written and error
    14  	WriteString(s string) (n int, err error)
    15  
    16  	// String method returns a string
    17  	String() string
    18  
    19  	// Bytes return a byte slice.
    20  	Bytes() []byte
    21  }
    22  
    23  // Encoder is an XML encoder that supports construction of XML values
    24  // using methods. The encoder takes in a writer and maintains a scratch buffer.
    25  type Encoder struct {
    26  	w       writer
    27  	scratch *[]byte
    28  }
    29  
    30  // NewEncoder returns an XML encoder
    31  func NewEncoder(w writer) *Encoder {
    32  	scratch := make([]byte, 64)
    33  
    34  	return &Encoder{w: w, scratch: &scratch}
    35  }
    36  
    37  // String returns the string output of the XML encoder
    38  func (e Encoder) String() string {
    39  	return e.w.String()
    40  }
    41  
    42  // Bytes returns the []byte slice of the XML encoder
    43  func (e Encoder) Bytes() []byte {
    44  	return e.w.Bytes()
    45  }
    46  
    47  // RootElement builds a root element encoding
    48  // It writes it's start element tag. The value should be closed.
    49  func (e Encoder) RootElement(element StartElement) Value {
    50  	return newValue(e.w, e.scratch, element)
    51  }
    52  

View as plain text