package atom import ( "encoding/xml" "fmt" ) type ExtensionElement struct { Value any `xml:",innerxml"` XMLName xml.Name } // NewExtensionElement creates a new ExtensionElement. It returns a // *ExtensionElement. func NewExtensionElement(name string, value any) *ExtensionElement { return &ExtensionElement{XMLName: xml.Name{Local: name}, Value: value} } // Check checks the ExtensionElement for incompatibilities with RFC4287. It // returns an error. func (e *ExtensionElement) Check() error { if e.XMLName.Local == "" { return fmt.Errorf("xml name of extension %v empty", e) } if e.Value == nil { return fmt.Errorf("value of extension %v empty", e) } return nil }