Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / github.com / google / go-cmp@v0.5.1 / cmp / internal / teststructs / project3.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/github.com/google/go-cmp@v0.5.1/cmp/internal/teststructs/project3.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/github.com/google/go-cmp@v0.5.1/cmp/internal/teststructs/project3.go
new file mode 100644 (file)
index 0000000..957d093
--- /dev/null
@@ -0,0 +1,82 @@
+// Copyright 2017, The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE.md file.
+
+package teststructs
+
+import (
+       "sync"
+
+       pb "github.com/google/go-cmp/cmp/internal/testprotos"
+)
+
+// This is an sanitized example of equality from a real use-case.
+// The original equality function was as follows:
+/*
+func equalDirt(x, y *Dirt) bool {
+       if !reflect.DeepEqual(x.table, y.table) ||
+               !reflect.DeepEqual(x.ts, y.ts) ||
+               x.Discord != y.Discord ||
+               !pb.Equal(&x.Proto, &y.Proto) ||
+               len(x.wizard) != len(y.wizard) ||
+               len(x.sadistic) != len(y.sadistic) ||
+               x.lastTime != y.lastTime {
+               return false
+       }
+       for k, vx := range x.wizard {
+               vy, ok := y.wizard[k]
+               if !ok || !pb.Equal(vx, vy) {
+                       return false
+               }
+       }
+       for k, vx := range x.sadistic {
+               vy, ok := y.sadistic[k]
+               if !ok || !pb.Equal(vx, vy) {
+                       return false
+               }
+       }
+       return true
+}
+*/
+
+type FakeMutex struct {
+       sync.Locker
+       x struct{}
+}
+
+type Dirt struct {
+       table    Table // Always concrete type of MockTable
+       ts       Timestamp
+       Discord  DiscordState
+       Proto    pb.Dirt
+       wizard   map[string]*pb.Wizard
+       sadistic map[string]*pb.Sadistic
+       lastTime int64
+       mu       FakeMutex
+}
+
+type DiscordState int
+
+type Timestamp int64
+
+func (d *Dirt) SetTable(t Table)                      { d.table = t }
+func (d *Dirt) SetTimestamp(t Timestamp)              { d.ts = t }
+func (d *Dirt) SetWizard(m map[string]*pb.Wizard)     { d.wizard = m }
+func (d *Dirt) SetSadistic(m map[string]*pb.Sadistic) { d.sadistic = m }
+func (d *Dirt) SetLastTime(t int64)                   { d.lastTime = t }
+
+type Table interface {
+       Operation1() error
+       Operation2() error
+       Operation3() error
+}
+
+type MockTable struct {
+       state []string
+}
+
+func CreateMockTable(s []string) *MockTable { return &MockTable{s} }
+func (mt *MockTable) Operation1() error     { return nil }
+func (mt *MockTable) Operation2() error     { return nil }
+func (mt *MockTable) Operation3() error     { return nil }
+func (mt *MockTable) State() []string       { return mt.state }