-
Notifications
You must be signed in to change notification settings - Fork 0
/
elements.go
70 lines (57 loc) · 940 Bytes
/
elements.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package schnittstellen
type Element interface {
EqualsAny(any) bool
}
type ElementPtr[T any] interface {
Ptr[T]
Element
}
type ValueLike interface {
Stringer
Element
}
type ValuePtrLike interface {
ValueLike
Setter
}
type Value[T any] interface {
ValueLike
Equatable[T]
}
type ValuePtr[T any] interface {
ValueLike
// Value[T]
Ptr[T]
}
type Id[T any] interface {
Value[T]
GattungGetter
}
type IdPtr[T any] interface {
Id[T]
ValuePtr[T]
Resetable[T]
}
// TODO-P2 remove
type Lessor[T any] interface {
Less(T) bool
}
// TODO-P2 rename
type Lessor2[T any, TPtr Ptr[T]] interface {
Less(T, T) bool
LessPtr(TPtr, TPtr) bool
}
// TODO-P2 rename
type Equaler1[T any] interface {
Equals(T, T) bool
}
// TODO-P2 rename
type Equaler[T any, TPtr Ptr[T]] interface {
Equaler1[T]
EqualsPtr(TPtr, TPtr) bool
}
type Resetter2[T any, TPtr Ptr[T]] interface {
Reset(TPtr)
ResetWith(TPtr, T)
ResetWithPtr(TPtr, TPtr)
}