type Iterator … type MergeIterator … type oneIterator … // Next moves the iterator to the next position. Returns false if there are no // more attributes. func (i *Iterator) Next() bool { … } // Label returns current KeyValue. Must be called only after Next returns // true. // // Deprecated: Use Attribute instead. func (i *Iterator) Label() KeyValue { … } // Attribute returns the current KeyValue of the Iterator. It must be called // only after Next returns true. func (i *Iterator) Attribute() KeyValue { … } // IndexedLabel returns current index and attribute. Must be called only // after Next returns true. // // Deprecated: Use IndexedAttribute instead. func (i *Iterator) IndexedLabel() (int, KeyValue) { … } // IndexedAttribute returns current index and attribute. Must be called only // after Next returns true. func (i *Iterator) IndexedAttribute() (int, KeyValue) { … } // Len returns a number of attributes in the iterated set. func (i *Iterator) Len() int { … } // ToSlice is a convenience function that creates a slice of attributes from // the passed iterator. The iterator is set up to start from the beginning // before creating the slice. func (i *Iterator) ToSlice() []KeyValue { … } // NewMergeIterator returns a MergeIterator for merging two attribute sets. // Duplicates are resolved by taking the value from the first set. func NewMergeIterator(s1, s2 *Set) MergeIterator { … } func makeOne(iter Iterator) oneIterator { … } func (oi *oneIterator) advance() { … } // Next returns true if there is another attribute available. func (m *MergeIterator) Next() bool { … } // Label returns the current value after Next() returns true. // // Deprecated: Use Attribute instead. func (m *MergeIterator) Label() KeyValue { … } // Attribute returns the current value after Next() returns true. func (m *MergeIterator) Attribute() KeyValue { … }