diff options
Diffstat (limited to 'src/nslcd_proto/util/enumerator@T.got')
-rw-r--r-- | src/nslcd_proto/util/enumerator@T.got | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/nslcd_proto/util/enumerator@T.got b/src/nslcd_proto/util/enumerator@T.got new file mode 100644 index 0000000..e1dd2ae --- /dev/null +++ b/src/nslcd_proto/util/enumerator@T.got @@ -0,0 +1,40 @@ +package util + +import "nslcd_proto" + +type <T>_List struct { + dat []nslcd_proto.<T> + i int +} + +var _ nslcd_proto.<T>_Enumerator = &<T>_List{} + +func New_<T>_List(ary []nslcd_proto.<T>) *<T>_List { + return &<T>_List{ary, 0} +} + +func (o *<T>_List) GetNext() (n *nslcd_proto.<T>, err error) { + if o.i < len(o.dat) { + n = &o.dat[o.i] + o.i++ + } + err = nil + return +} + +func (o *<T>_List) GenericGetNext() (n interface{}, err error) { + return o.GetNext() +} + +type <T>_Ø struct{} + +var _ nslcd_proto.<T>_Enumerator = <T>_Ø{} + +func (o <T>_Ø) GetNext() (*nslcd_proto.<T>, error) { + return nil, nil +} +func (o <T>_Ø) GenericGetNext() (interface{}, error) { + return nil, nil +} + +// -*- Mode: Go -*- |