func loadWildMin(ls *persist.LoadSaver) Frame { return WildMin{ OffType(ls.LoadByte()), ls.LoadInt(), patterns.Load(ls), } }
func loadFixed(ls *persist.LoadSaver) Frame { return Fixed{ OffType(ls.LoadByte()), ls.LoadInt(), patterns.Load(ls), } }
func loadKeyFrames(ls *persist.LoadSaver) [][]keyFrame { kfs := make([][]keyFrame, ls.LoadSmallInt()) for i := range kfs { kfs[i] = make([]keyFrame, ls.LoadSmallInt()) for j := range kfs[i] { kfs[i][j].typ = frames.OffType(ls.LoadByte()) kfs[i][j].seg.pMin = int64(ls.LoadInt()) kfs[i][j].seg.pMax = int64(ls.LoadInt()) kfs[i][j].seg.lMin = ls.LoadSmallInt() kfs[i][j].seg.lMax = ls.LoadSmallInt() kfs[i][j].key.pMin = int64(ls.LoadInt()) kfs[i][j].key.pMax = int64(ls.LoadInt()) kfs[i][j].key.lMin = ls.LoadSmallInt() kfs[i][j].key.lMax = ls.LoadSmallInt() } } return kfs }
// Load loads a Matcher. func Load(ls *persist.LoadSaver) core.Matcher { if !ls.LoadBool() { return nil } return &Matcher{ keyFrames: loadKeyFrames(ls), tests: loadTests(ls), bofFrames: loadFrameSet(ls), eofFrames: loadFrameSet(ls), bofSeq: loadSeqSet(ls), eofSeq: loadSeqSet(ls), knownBOF: ls.LoadInt(), knownEOF: ls.LoadInt(), maxBOF: ls.LoadInt(), maxEOF: ls.LoadInt(), priorities: priority.Load(ls), mu: &sync.Mutex{}, } }
func Load(ls *persist.LoadSaver) *Set { set := &Set{} set.idx = ls.LoadInts() set.lists = make([]List, ls.LoadSmallInt()) for i := range set.lists { le := ls.LoadSmallInt() if le == 0 { continue } set.lists[i] = make(List, le) for j := range set.lists[i] { set.lists[i][j] = ls.LoadInts() } } set.maxOffsets = make([][2]int, ls.LoadSmallInt()) for i := range set.maxOffsets { set.maxOffsets[i] = [2]int{ls.LoadInt(), ls.LoadInt()} } return set }
func loadTests(ls *persist.LoadSaver) []*testTree { l := ls.LoadSmallInt() ret := make([]*testTree, l) for i := range ret { ret[i] = &testTree{} ret[i].complete = make([]keyFrameID, ls.LoadSmallInt()) for j := range ret[i].complete { ret[i].complete[j][0] = ls.LoadSmallInt() ret[i].complete[j][1] = ls.LoadSmallInt() } ret[i].incomplete = make([]followUp, ls.LoadSmallInt()) for j := range ret[i].incomplete { ret[i].incomplete[j].kf[0] = ls.LoadSmallInt() ret[i].incomplete[j].kf[1] = ls.LoadSmallInt() ret[i].incomplete[j].l = ls.LoadBool() ret[i].incomplete[j].r = ls.LoadBool() } ret[i].maxLeftDistance = ls.LoadInt() ret[i].maxRightDistance = ls.LoadInt() ret[i].left = loadTestNodes(ls) ret[i].right = loadTestNodes(ls) } return ret }
func loadIndexes(ls *persist.LoadSaver) indexes { return indexes{ ls.LoadInt(), ls.LoadStrings(), } }