github.com/alimy/mir/v4@v4.1.0/assert/assert_any.go (about) 1 // Copyright 2023 Michael Li <alimy@gility.net>. All rights reserved. 2 // Use of this source code is governed by Apache License 2.0 that 3 // can be found in the LICENSE file. 4 5 package assert 6 7 // anyTypeAssertor a common type assert for type T 8 type anyTypeAssertor[T any] struct{} 9 10 // anyTypeAssertor2 a common type assert for type B(Binding) and R(Render) 11 type anyTypeAssertor2[B, R any] struct{} 12 13 // anyTypeAssertor3 a common type assert for type B(Binding)/P(Params) and R(Render) 14 type anyTypeAssertor3[B, P, R any] struct{} 15 16 // anyTypeAssertor4 a common type assert for type C and T 17 type anyTypeAssertor4[C, T any] struct{} 18 19 func (anyTypeAssertor[T]) AssertBinding(obj any) bool { 20 _, ok := obj.(Binding[T]) 21 return ok 22 } 23 24 func (anyTypeAssertor[T]) AssertRender(obj any) bool { 25 _, ok := obj.(Render[T]) 26 return ok 27 } 28 29 func (anyTypeAssertor2[B, R]) AssertBinding(obj any) bool { 30 _, ok := obj.(Binding[B]) 31 return ok 32 } 33 34 func (anyTypeAssertor2[B, R]) AssertRender(obj any) bool { 35 _, ok := obj.(Render[R]) 36 return ok 37 } 38 39 func (anyTypeAssertor3[B, P, R]) AssertBinding(obj any) bool { 40 _, ok := obj.(Binding2[B, P]) 41 return ok 42 } 43 44 func (anyTypeAssertor3[B, P, R]) AssertRender(obj any) bool { 45 _, ok := obj.(Render[R]) 46 return ok 47 } 48 49 func (anyTypeAssertor4[C, T]) AssertBinding(obj any) bool { 50 _, ok := obj.(Binding2[C, T]) 51 return ok 52 } 53 54 func (anyTypeAssertor4[C, T]) AssertRender(obj any) bool { 55 _, ok := obj.(Render2[C, T]) 56 return ok 57 }