package barefeed
// Code generated by go-bare/cmd/gen, DO NOT EDIT.
import (
"git.sr.ht/~sircmpwn/go-bare"
)
type Time string
func (t *Time) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Time) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Text struct {
TextType string `bare:"textType"`
Value string `bare:"value"`
}
func (t *Text) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Text) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Link struct {
Href string `bare:"href"`
Rel *string `bare:"rel"`
LinkType *string `bare:"linkType"`
Lang *string `bare:"lang"`
Title *string `bare:"title"`
Length *string `bare:"length"`
}
func (t *Link) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Link) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Person struct {
Name string `bare:"name"`
Email *string `bare:"email"`
Uri *string `bare:"uri"`
}
func (t *Person) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Person) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Entry struct {
FeedID string `bare:"feedID"`
EntryID string `bare:"entryID"`
Read bool `bare:"read"`
Liked bool `bare:"liked"`
Position uint `bare:"position"`
Title Text `bare:"title"`
Content Text `bare:"content"`
Updated Time `bare:"updated"`
Published *Time `bare:"published"`
Authors []Person `bare:"authors"`
Links []Link `bare:"links"`
}
func (t *Entry) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Entry) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Feed struct {
FeedPath string `bare:"feedPath"`
FeedID string `bare:"feedID"`
Title Text `bare:"title"`
Updated Time `bare:"updated"`
Authors []Person `bare:"authors"`
Links []Link `bare:"links"`
}
func (t *Feed) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Feed) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Bin struct {
Generator string `bare:"generator"`
Content Content `bare:"content"`
}
func (t *Bin) Decode(data []byte) error {
return bare.Unmarshal(data, t)
}
func (t *Bin) Encode() ([]byte, error) {
return bare.Marshal(t)
}
type Content interface {
bare.Union
}
func (_ Feed) IsUnion() {}
func (_ Entry) IsUnion() {}
func init() {
bare.RegisterUnion((*Content)(nil)).
Member(*new(Feed), 0).
Member(*new(Entry), 1)
}