trpc.group/trpc-go/trpc-go@v1.0.3/codec/serialization_xml.go (about)

     1  //
     2  //
     3  // Tencent is pleased to support the open source community by making tRPC available.
     4  //
     5  // Copyright (C) 2023 THL A29 Limited, a Tencent company.
     6  // All rights reserved.
     7  //
     8  // If you have downloaded a copy of the tRPC source code from Tencent,
     9  // please note that tRPC source code is licensed under the  Apache 2.0 License,
    10  // A copy of the Apache 2.0 License is included in this file.
    11  //
    12  //
    13  
    14  package codec
    15  
    16  import (
    17  	"encoding/xml"
    18  )
    19  
    20  func init() {
    21  	RegisterSerializer(SerializationTypeXML, &XMLSerialization{})
    22  	RegisterSerializer(SerializationTypeTextXML, &XMLSerialization{})
    23  }
    24  
    25  // XMLSerialization provides xml serialization mode.
    26  type XMLSerialization struct{}
    27  
    28  // Unmarshal deserializes the in bytes into body.
    29  func (*XMLSerialization) Unmarshal(in []byte, body interface{}) error {
    30  	return xml.Unmarshal(in, body)
    31  }
    32  
    33  // Marshal returns the serialized bytes in xml protocol.
    34  func (*XMLSerialization) Marshal(body interface{}) ([]byte, error) {
    35  	return xml.Marshal(body)
    36  }