func (f_sym10 *FakeStructer) StructResultsForCall(ident1 struct {
	a string
	b string
}) (ident2 struct {
	c string
	d string
}, found_sym10 bool) {
	for _, call_sym10 := range f_sym10.StructCalls {
		if reflect.DeepEqual(call_sym10.Parameters.Ident1, ident1) {
			ident2 = call_sym10.Results.Ident2
			found_sym10 = true
			break
		}
	}
	return
}
StructResultsForCall returns the result values for the first call to FakeStructer.Struct with the given values
package main
import "reflect"
type StructerStructInvocation struct {
	Parameters struct {
		Ident1 struct {
			a string
			b string
		}
	}
	Results struct {
		Ident2 struct {
			c string
			d string
		}
	}
}
func NewStructerStructInvocation(ident1 struct {
	a string
	b string
}, ident2 struct {
	c string
	d string
}) *StructerStructInvocation {
	invocation := new(StructerStructInvocation)
	invocation.Parameters.Ident1 = ident1
	invocation.Results.Ident2 = ident2
	return invocation
}
type StructerNamedStructInvocation struct {
	Parameters struct {
		A struct {
			a string
			b string
		}
	}
	Results struct {
		Z struct {
			c string
			d string
		}
	}
}
func NewStructerNamedStructInvocation(a struct {
	a string
	b string
}, z struct {
	c string
	d string
}) *StructerNamedStructInvocation {
	invocation := new(StructerNamedStructInvocation)
	invocation.Parameters.A = a
	invocation.Results.Z = z
	return invocation
}
type StructerTestingT interface {
	Error(...interface{})
	Errorf(string, ...interface{})
	Fatal(...interface{})
	Helper()
}
type FakeStructer struct {
	StructHook func(struct {
		a string
		b string
	}) struct {
		c string
		d string
	}
	NamedStructHook func(struct {
		a string
		b string
	}) struct {
		c string
		d string
	}
	StructCalls      []*StructerStructInvocation
	NamedStructCalls []*StructerNamedStructInvocation
}
func NewFakeStructerDefaultPanic() *FakeStructer {
	return &FakeStructer{
		StructHook: func(struct {
			a string
			b string
		}) (ident2 struct {
			c string
			d string
		}) {
			panic("Unexpected call to Structer.Struct")
		},
		NamedStructHook: func(struct {
			a string
			b string
		}) (z struct {
			c string
			d string
		}) {
			panic("Unexpected call to Structer.NamedStruct")
		},
	}
}
func NewFakeStructerDefaultFatal(t_sym1 StructerTestingT) *FakeStructer {
	return &FakeStructer{
		StructHook: func(struct {
			a string
			b string
		}) (ident2 struct {
			c string
			d string
		}) {
			t_sym1.Fatal("Unexpected call to Structer.Struct")
			return
		},
		NamedStructHook: func(struct {
			a string
			b string
		}) (z struct {
			c string
			d string
		}) {
			t_sym1.Fatal("Unexpected call to Structer.NamedStruct")
			return
		},
	}
}
func NewFakeStructerDefaultError(t_sym2 StructerTestingT) *FakeStructer {
	return &FakeStructer{
		StructHook: func(struct {
			a string
			b string
		}) (ident2 struct {
			c string
			d string
		}) {
			t_sym2.Error("Unexpected call to Structer.Struct")
			return
		},
		NamedStructHook: func(struct {
			a string
			b string
		}) (z struct {
			c string
			d string
		}) {
			t_sym2.Error("Unexpected call to Structer.NamedStruct")
			return
		},
	}
}
func (f *FakeStructer) Reset() {
	f.StructCalls = []*StructerStructInvocation{}
	f.NamedStructCalls = []*StructerNamedStructInvocation{}
}
func (f_sym3 *FakeStructer) Struct(ident1 struct {
	a string
	b string
}) (ident2 struct {
	c string
	d string
}) {
	if f_sym3.StructHook == nil {
		panic("Structer.Struct() called but FakeStructer.StructHook is nil")
	}
	invocation_sym3 := new(StructerStructInvocation)
	f_sym3.StructCalls = append(f_sym3.StructCalls, invocation_sym3)
	invocation_sym3.Parameters.Ident1 = ident1
	ident2 = f_sym3.StructHook(ident1)
	invocation_sym3.Results.Ident2 = ident2
	return
}
func (f_sym4 *FakeStructer) SetStructStub(ident2 struct {
	c string
	d string
}) {
	f_sym4.StructHook = func(struct {
		a string
		b string
	}) struct {
		c string
		d string
	} {
		return ident2
	}
}
func (f_sym5 *FakeStructer) SetStructInvocation(calls_sym5 []*StructerStructInvocation, fallback_sym5 func() struct {
	c string
	d string
}) {
	f_sym5.StructHook = func(ident1 struct {
		a string
		b string
	}) (ident2 struct {
		c string
		d string
	}) {
		for _, call_sym5 := range calls_sym5 {
			if reflect.DeepEqual(call_sym5.Parameters.Ident1, ident1) {
				ident2 = call_sym5.Results.Ident2
				return
			}
		}
		return fallback_sym5()
	}
}
func (f *FakeStructer) StructCalled() bool {
	return len(f.StructCalls) != 0
}
func (f *FakeStructer) AssertStructCalled(t StructerTestingT) {
	t.Helper()
	if len(f.StructCalls) == 0 {
		t.Error("FakeStructer.Struct not called, expected at least one")
	}
}
func (f *FakeStructer) StructNotCalled() bool {
	return len(f.StructCalls) == 0
}
func (f *FakeStructer) AssertStructNotCalled(t StructerTestingT) {
	t.Helper()
	if len(f.StructCalls) != 0 {
		t.Error("FakeStructer.Struct called, expected none")
	}
}
func (f *FakeStructer) StructCalledOnce() bool {
	return len(f.StructCalls) == 1
}
func (f *FakeStructer) AssertStructCalledOnce(t StructerTestingT) {
	t.Helper()
	if len(f.StructCalls) != 1 {
		t.Errorf("FakeStructer.Struct called %d times, expected 1", len(f.StructCalls))
	}
}
func (f *FakeStructer) StructCalledN(n int) bool {
	return len(f.StructCalls) >= n
}
func (f *FakeStructer) AssertStructCalledN(t StructerTestingT, n int) {
	t.Helper()
	if len(f.StructCalls) < n {
		t.Errorf("FakeStructer.Struct called %d times, expected >= %d", len(f.StructCalls), n)
	}
}
func (f_sym6 *FakeStructer) StructCalledWith(ident1 struct {
	a string
	b string
}) bool {
	for _, call_sym6 := range f_sym6.StructCalls {
		if reflect.DeepEqual(call_sym6.Parameters.Ident1, ident1) {
			return true
		}
	}
	return false
}
func (f_sym7 *FakeStructer) AssertStructCalledWith(t StructerTestingT, ident1 struct {
	a string
	b string
}) {
	t.Helper()
	var found_sym7 bool
	for _, call_sym7 := range f_sym7.StructCalls {
		if reflect.DeepEqual(call_sym7.Parameters.Ident1, ident1) {
			found_sym7 = true
			break
		}
	}
	if !found_sym7 {
		t.Error("FakeStructer.Struct not called with expected parameters")
	}
}
func (f_sym8 *FakeStructer) StructCalledOnceWith(ident1 struct {
	a string
	b string
}) bool {
	var count_sym8 int
	for _, call_sym8 := range f_sym8.StructCalls {
		if reflect.DeepEqual(call_sym8.Parameters.Ident1, ident1) {
			count_sym8++
		}
	}
	return count_sym8 == 1
}
func (f_sym9 *FakeStructer) AssertStructCalledOnceWith(t StructerTestingT, ident1 struct {
	a string
	b string
}) {
	t.Helper()
	var count_sym9 int
	for _, call_sym9 := range f_sym9.StructCalls {
		if reflect.DeepEqual(call_sym9.Parameters.Ident1, ident1) {
			count_sym9++
		}
	}
	if count_sym9 != 1 {
		t.Errorf("FakeStructer.Struct called %d times with expected parameters, expected one", count_sym9)
	}
}