// automatically generated by stateify.

package header

import (
	"gvisor.dev/gvisor/pkg/state"
)

func (x *SACKBlock) StateTypeName() string {
	return "pkg/tcpip/header.SACKBlock"
}

func (x *SACKBlock) StateFields() []string {
	return []string{
		"Start",
		"End",
	}
}

func (x *SACKBlock) beforeSave() {}

func (x *SACKBlock) StateSave(m state.Sink) {
	x.beforeSave()
	m.Save(0, &x.Start)
	m.Save(1, &x.End)
}

func (x *SACKBlock) afterLoad() {}

func (x *SACKBlock) StateLoad(m state.Source) {
	m.Load(0, &x.Start)
	m.Load(1, &x.End)
}

func (x *TCPOptions) StateTypeName() string {
	return "pkg/tcpip/header.TCPOptions"
}

func (x *TCPOptions) StateFields() []string {
	return []string{
		"TS",
		"TSVal",
		"TSEcr",
		"SACKBlocks",
	}
}

func (x *TCPOptions) beforeSave() {}

func (x *TCPOptions) StateSave(m state.Sink) {
	x.beforeSave()
	m.Save(0, &x.TS)
	m.Save(1, &x.TSVal)
	m.Save(2, &x.TSEcr)
	m.Save(3, &x.SACKBlocks)
}

func (x *TCPOptions) afterLoad() {}

func (x *TCPOptions) StateLoad(m state.Source) {
	m.Load(0, &x.TS)
	m.Load(1, &x.TSVal)
	m.Load(2, &x.TSEcr)
	m.Load(3, &x.SACKBlocks)
}

func init() {
	state.Register((*SACKBlock)(nil))
	state.Register((*TCPOptions)(nil))
}