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  }