github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/types/apachelogs/array.go (about) 1 package apachelogs 2 3 import ( 4 "bufio" 5 "context" 6 7 "github.com/lmorg/murex/lang/stdio" 8 ) 9 10 func readArray(ctx context.Context, read stdio.Io, callback func([]byte)) error { 11 scanner := bufio.NewScanner(read) 12 for scanner.Scan() { 13 select { 14 case <-ctx.Done(): 15 return scanner.Err() 16 17 default: 18 callback(scanner.Bytes()) 19 } 20 } 21 22 return scanner.Err() 23 } 24 25 func readArrayWithType(ctx context.Context, read stdio.Io, callback func(interface{}, string)) error { 26 scanner := bufio.NewScanner(read) 27 for scanner.Scan() { 28 select { 29 case <-ctx.Done(): 30 return scanner.Err() 31 32 default: 33 callback(scanner.Bytes(), typeAccess) 34 } 35 } 36 37 return scanner.Err() 38 }