Browse Source

Map & LibName

ls 5 years ago
parent
commit
c75396c1fd
2 changed files with 24 additions and 1 deletions
  1. 23 0
      utils.go
  2. 1 1
      version.go

+ 23 - 0
utils.go

@@ -2,6 +2,7 @@ package myth
 
 import (
 	"encoding/json"
+	"encoding/xml"
 )
 
 // Map is a shortcut for map[string]interface{}
@@ -18,3 +19,25 @@ func (m Map) Bytes() []byte {
 	bs, _ := json.Marshal(m)
 	return bs
 }
+
+// MarshalXML allows type Map to be used with xml.Marshal.
+func (m Map) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+	start.Name = xml.Name{
+		Space: "",
+		Local: "map",
+	}
+	if err := e.EncodeToken(start); err != nil {
+		return err
+	}
+	for key, value := range m {
+		elem := xml.StartElement{
+			Name: xml.Name{Space: "", Local: key},
+			Attr: []xml.Attr{},
+		}
+		if err := e.EncodeElement(value, elem); err != nil {
+			return err
+		}
+	}
+
+	return e.EncodeToken(xml.EndElement{Name: start.Name})
+}

+ 1 - 1
version.go

@@ -2,6 +2,6 @@ package myth
 
 // Library constant
 const (
-	LibName    = `myth`  // LibName toolkit name Go micro service
+	LibName    = `myth`  // LibName toolkit name
 	LibVersion = `0.6.0` // LibVersion toolkit version
 )