...

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

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

     1  package xml
     2  
     3  // mapEntryWrapper is the default member wrapper start element for XML Map entry
     4  var mapEntryWrapper = StartElement{
     5  	Name: Name{Local: "entry"},
     6  }
     7  
     8  // Map represents the encoding of a XML map type
     9  type Map struct {
    10  	w       writer
    11  	scratch *[]byte
    12  
    13  	// member start element is the map entry wrapper start element
    14  	memberStartElement StartElement
    15  
    16  	// isFlattened returns true if the map is a flattened map
    17  	isFlattened bool
    18  }
    19  
    20  // newMap returns a map encoder which sets the default map
    21  // entry wrapper to `entry`.
    22  //
    23  // A map `someMap : {{key:"abc", value:"123"}}` is represented as
    24  // `<someMap><entry><key>abc<key><value>123</value></entry></someMap>`.
    25  func newMap(w writer, scratch *[]byte) *Map {
    26  	return &Map{
    27  		w:                  w,
    28  		scratch:            scratch,
    29  		memberStartElement: mapEntryWrapper,
    30  	}
    31  }
    32  
    33  // newFlattenedMap returns a map encoder which sets the map
    34  // entry wrapper to the passed in memberWrapper`.
    35  //
    36  // A flattened map `someMap : {{key:"abc", value:"123"}}` is represented as
    37  // `<someMap><key>abc<key><value>123</value></someMap>`.
    38  func newFlattenedMap(w writer, scratch *[]byte, memberWrapper StartElement) *Map {
    39  	return &Map{
    40  		w:                  w,
    41  		scratch:            scratch,
    42  		memberStartElement: memberWrapper,
    43  		isFlattened:        true,
    44  	}
    45  }
    46  
    47  // Entry returns a Value encoder with map's element.
    48  // It writes the member wrapper start tag for each entry.
    49  func (m *Map) Entry() Value {
    50  	v := newValue(m.w, m.scratch, m.memberStartElement)
    51  	v.isFlattened = m.isFlattened
    52  	return v
    53  }
    54  

View as plain text