// Code generated by avro/gen. DO NOT EDIT.
package twt_avro

import (
	"github.com/hamba/avro/v2"
)

// Linesep is a generated struct.
type Linesep struct {
}

var schemaLinesep = avro.MustParse(`{"name":"social.yarn.lextwt.linesep","type":"record","fields":[]}`)

// Schema returns the schema for Linesep.
func (o *Linesep) Schema() avro.Schema {
	return schemaLinesep
}

// Unmarshal decodes b into the receiver.
func (o *Linesep) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Linesep) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Comment is a generated struct.
type Comment struct {
	Comment string `avro:"comment"`
	Key     string `avro:"key"`
	Value   string `avro:"value"`
}

var schemaComment = avro.MustParse(`{"name":"social.yarn.lextwt.comment","type":"record","fields":[{"name":"comment","type":"string"},{"name":"key","type":"string"},{"name":"value","type":"string"}]}`)

// Schema returns the schema for Comment.
func (o *Comment) Schema() avro.Schema {
	return schemaComment
}

// Unmarshal decodes b into the receiver.
func (o *Comment) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Comment) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Mention is a generated struct.
type Mention struct {
	Name   string `avro:"name"`
	Domain string `avro:"domain"`
	Target string `avro:"target"`
}

var schemaMention = avro.MustParse(`{"name":"social.yarn.lextwt.mention","type":"record","fields":[{"name":"name","type":"string"},{"name":"domain","type":"string"},{"name":"target","type":"string"}]}`)

// Schema returns the schema for Mention.
func (o *Mention) Schema() avro.Schema {
	return schemaMention
}

// Unmarshal decodes b into the receiver.
func (o *Mention) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Mention) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Bangmention is a generated struct.
type Bangmention struct {
	Name   string `avro:"name"`
	Target string `avro:"target"`
}

var schemaBangmention = avro.MustParse(`{"name":"social.yarn.lextwt.bangmention","type":"record","fields":[{"name":"name","type":"string"},{"name":"target","type":"string"}]}`)

// Schema returns the schema for Bangmention.
func (o *Bangmention) Schema() avro.Schema {
	return schemaBangmention
}

// Unmarshal decodes b into the receiver.
func (o *Bangmention) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Bangmention) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Hashtag is a generated struct.
type Hashtag struct {
	Tag    string `avro:"tag"`
	Target string `avro:"target"`
}

var schemaHashtag = avro.MustParse(`{"name":"social.yarn.lextwt.hashtag","type":"record","fields":[{"name":"tag","type":"string"},{"name":"target","type":"string"}]}`)

// Schema returns the schema for Hashtag.
func (o *Hashtag) Schema() avro.Schema {
	return schemaHashtag
}

// Unmarshal decodes b into the receiver.
func (o *Hashtag) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Hashtag) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Subject is a generated struct.
type Subject struct {
	Subject string `avro:"subject"`
	Tag     string `avro:"tag"`
	Target  string `avro:"target"`
}

var schemaSubject = avro.MustParse(`{"name":"social.yarn.lextwt.subject","type":"record","fields":[{"name":"subject","type":"string"},{"name":"tag","type":"string"},{"name":"target","type":"string"}]}`)

// Schema returns the schema for Subject.
func (o *Subject) Schema() avro.Schema {
	return schemaSubject
}

// Unmarshal decodes b into the receiver.
func (o *Subject) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Subject) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Link is a generated struct.
type Link struct {
	LinkType int    `avro:"linkType"`
	Text     string `avro:"text"`
	Target   string `avro:"target"`
	Title    string `avro:"title"`
}

var schemaLink = avro.MustParse(`{"name":"social.yarn.lextwt.link","type":"record","fields":[{"name":"linkType","type":"int"},{"name":"text","type":"string"},{"name":"target","type":"string"},{"name":"title","type":"string"}]}`)

// Schema returns the schema for Link.
func (o *Link) Schema() avro.Schema {
	return schemaLink
}

// Unmarshal decodes b into the receiver.
func (o *Link) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Link) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Code is a generated struct.
type Code struct {
	Code     string `avro:"code"`
	Codetype int    `avro:"codetype"`
}

var schemaCode = avro.MustParse(`{"name":"social.yarn.lextwt.code","type":"record","fields":[{"name":"code","type":"string"},{"name":"codetype","type":"int"}]}`)

// Schema returns the schema for Code.
func (o *Code) Schema() avro.Schema {
	return schemaCode
}

// Unmarshal decodes b into the receiver.
func (o *Code) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Code) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Twt is a generated struct.
type Twt struct {
	Nick          string `avro:"nick"`
	URI           string `avro:"uri"`
	Created       int64  `avro:"created"`
	CreatedZone   string `avro:"createdZone"`
	CreatedOffset int    `avro:"createdOffset"`
	Msg           []any  `avro:"msg"`
}

var schemaTwt = avro.MustParse(`{"name":"social.yarn.lextwt.twt","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"},{"name":"created","type":"long"},{"name":"createdZone","type":"string"},{"name":"createdOffset","type":"int"},{"name":"msg","type":{"type":"array","items":["null","string",{"name":"social.yarn.lextwt.linesep","type":"record","fields":[]},{"name":"social.yarn.lextwt.comment","type":"record","fields":[{"name":"comment","type":"string"},{"name":"key","type":"string"},{"name":"value","type":"string"}]},{"name":"social.yarn.lextwt.mention","type":"record","fields":[{"name":"name","type":"string"},{"name":"domain","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.bangmention","type":"record","fields":[{"name":"name","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.hashtag","type":"record","fields":[{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.subject","type":"record","fields":[{"name":"subject","type":"string"},{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.link","type":"record","fields":[{"name":"linkType","type":"int"},{"name":"text","type":"string"},{"name":"target","type":"string"},{"name":"title","type":"string"}]},{"name":"social.yarn.lextwt.code","type":"record","fields":[{"name":"code","type":"string"},{"name":"codetype","type":"int"}]}]}}]}`)

// Schema returns the schema for Twt.
func (o *Twt) Schema() avro.Schema {
	return schemaTwt
}

// Unmarshal decodes b into the receiver.
func (o *Twt) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Twt) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Twter is a generated struct.
type Twter struct {
	Nick string `avro:"nick"`
	URI  string `avro:"uri"`
}

var schemaTwter = avro.MustParse(`{"name":"social.yarn.lextwt.twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}`)

// Schema returns the schema for Twter.
func (o *Twter) Schema() avro.Schema {
	return schemaTwter
}

// Unmarshal decodes b into the receiver.
func (o *Twter) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Twter) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}

// Registry is a generated struct.
type Registry struct {
	Twts     []Twt     `avro:"twts"`
	Twters   []Twter   `avro:"twters"`
	Preamble []Comment `avro:"preamble"`
}

var schemaRegistry = avro.MustParse(`{"name":"social.yarn.lextwt.registry","type":"record","fields":[{"name":"twts","type":{"type":"array","items":{"name":"social.yarn.lextwt.twt","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"},{"name":"created","type":"long"},{"name":"createdZone","type":"string"},{"name":"createdOffset","type":"int"},{"name":"msg","type":{"type":"array","items":["null","string",{"name":"social.yarn.lextwt.linesep","type":"record","fields":[]},{"name":"social.yarn.lextwt.comment","type":"record","fields":[{"name":"comment","type":"string"},{"name":"key","type":"string"},{"name":"value","type":"string"}]},{"name":"social.yarn.lextwt.mention","type":"record","fields":[{"name":"name","type":"string"},{"name":"domain","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.bangmention","type":"record","fields":[{"name":"name","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.hashtag","type":"record","fields":[{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.subject","type":"record","fields":[{"name":"subject","type":"string"},{"name":"tag","type":"string"},{"name":"target","type":"string"}]},{"name":"social.yarn.lextwt.link","type":"record","fields":[{"name":"linkType","type":"int"},{"name":"text","type":"string"},{"name":"target","type":"string"},{"name":"title","type":"string"}]},{"name":"social.yarn.lextwt.code","type":"record","fields":[{"name":"code","type":"string"},{"name":"codetype","type":"int"}]}]}}]}}},{"name":"twters","type":{"type":"array","items":{"name":"social.yarn.lextwt.twter","type":"record","fields":[{"name":"nick","type":"string"},{"name":"uri","type":"string"}]}}},{"name":"preamble","type":{"type":"array","items":"social.yarn.lextwt.comment"}}]}`)

// Schema returns the schema for Registry.
func (o *Registry) Schema() avro.Schema {
	return schemaRegistry
}

// Unmarshal decodes b into the receiver.
func (o *Registry) Unmarshal(b []byte) error {
	return avro.Unmarshal(o.Schema(), b, o)
}

// Marshal encodes the receiver.
func (o *Registry) Marshal() ([]byte, error) {
	return avro.Marshal(o.Schema(), o)
}
