We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add iter.Seq2 iterator methods on encoding/xml.Decoder to iter over tokens and raw tokens.
iter.Seq2
encoding/xml.Decoder
func (d *Decoder) Tokens() iter.Seq2[Token, error] { return func(yield func(Token, error) bool) { for { token, err := d.Token() if err == io.EOF { break } if !yield(token, err) { break } // What should we do here if err != nil? } } } func (d *Decoder) RawTokens() iter.Seq2[Token, error] { return func(yield func(Token, error) bool) { for { token, err := d.RawToken() if err == io.EOF { break } if !yield(token, err) { break } // What should we do here if err != nil? } } }
Note: I'm not yet sure to like an iterator that handles a stream error this way.
Related:
The text was updated successfully, but these errors were encountered:
Related Issues
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
Sorry, something went wrong.
Note that generic functions can also be written outside the package so the Decoder methods would be purely to allow "native" range-over-func support:
Decoder
func IterTokens[Token any, Tokenizer interface{ Token() (Token, error) }](tok Tokenizer) iter.Seq2[Token, error] { return func(yield func(Token, error) bool) { for { token, err := tok.Token() if err == io.EOF { break } if !yield(token, err) { break } } } } func IterRawTokens[Token any, Tokenizer interface{ RawToken() (Token, error) }](tok Tokenizer) iter.Seq2[Token, error] { return func(yield func(Token, error) bool) { for { token, err := tok.RawToken() if err == io.EOF { break } if !yield(token, err) { break } } } }
No branches or pull requests
Proposal Details
Add
iter.Seq2
iterator methods onencoding/xml.Decoder
to iter over tokens and raw tokens.Note: I'm not yet sure to like an iterator that handles a stream error this way.
Related:
The text was updated successfully, but these errors were encountered: