github.com/goplus/gox@v1.14.13-0.20240308130321-6ff7f61cfae8/internal/iox/enum.go (about) 1 /* 2 Copyright 2022 The GoPlus Authors (goplus.org) 3 Licensed under the Apache License, Version 2.0 (the "License"); 4 you may not use this file except in compliance with the License. 5 You may obtain a copy of the License at 6 http://www.apache.org/licenses/LICENSE-2.0 7 Unless required by applicable law or agreed to in writing, software 8 distributed under the License is distributed on an "AS IS" BASIS, 9 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 See the License for the specific language governing permissions and 11 limitations under the License. 12 */ 13 14 package iox 15 16 import ( 17 "bufio" 18 "io" 19 ) 20 21 // ---------------------------------------------------------------------------- 22 23 type LineIter struct { 24 *bufio.Scanner 25 } 26 27 func (it LineIter) Next() (line string, ok bool) { 28 if ok = it.Scan(); ok { 29 line = it.Text() 30 } 31 return 32 } 33 34 func EnumLines(r io.Reader) LineIter { 35 scanner := bufio.NewScanner(r) 36 return LineIter{scanner} 37 } 38 39 // ----------------------------------------------------------------------------