github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/pipes/null/null.go (about)

     1  package null
     2  
     3  import (
     4  	"context"
     5  	"io"
     6  	"os"
     7  
     8  	"github.com/lmorg/murex/config"
     9  	"github.com/lmorg/murex/lang/stdio"
    10  	"github.com/lmorg/murex/lang/types"
    11  )
    12  
    13  // Since I don't want you to create null pipes, lets not register it
    14  /*func init() {
    15  	stdio.RegisterPipe("null", func(string) (stdio.Io, error) {
    16  		return nil, errors.New("null pipes cannot be created. Use `null` if you require a null pipe")
    17  	})
    18  }*/
    19  
    20  // Null is null interface for named pipes
    21  type Null struct{}
    22  
    23  func (t *Null) File() *os.File {
    24  	return nil
    25  }
    26  
    27  // Read - null interface
    28  func (t *Null) Read([]byte) (int, error) { return 0, nil }
    29  
    30  // ReadLine - null interface
    31  func (t *Null) ReadLine(func([]byte)) error { return nil }
    32  
    33  // ReadArray - null interface
    34  func (t *Null) ReadArray(context.Context, func([]byte)) error { return nil }
    35  
    36  // ReadArrayWithType - null interface
    37  func (t *Null) ReadArrayWithType(context.Context, func(interface{}, string)) error { return nil }
    38  
    39  // ReadMap - null interface
    40  func (t *Null) ReadMap(*config.Config, func(*stdio.Map)) error { return nil }
    41  
    42  // ReadAll - null interface
    43  func (t *Null) ReadAll() ([]byte, error) { return []byte{}, nil }
    44  
    45  // WriteTo - null interface
    46  func (t *Null) WriteTo(io.Writer) (int64, error) { return 0, nil }
    47  
    48  // Write - null interface
    49  func (t *Null) Write(b []byte) (int, error) { return len(b), nil }
    50  
    51  // Writeln - null interface
    52  func (t *Null) Writeln(b []byte) (int, error) { return len(b), nil }
    53  
    54  // WriteArray - null interface
    55  func (t *Null) WriteArray(dataType string) (stdio.ArrayWriter, error) {
    56  	return stdio.WriteArray(t, dataType)
    57  }
    58  
    59  // Stats - null interface
    60  func (t *Null) Stats() (uint64, uint64) { return 0, 0 }
    61  
    62  // GetDataType - null interface
    63  func (t *Null) GetDataType() string { return types.Null }
    64  
    65  // SetDataType - null interface
    66  func (t *Null) SetDataType(string) {}
    67  
    68  // DefaultDataType - null interface
    69  func (t *Null) DefaultDataType(bool) {}
    70  
    71  // IsTTY - null interface
    72  func (t *Null) IsTTY() bool { return false }
    73  
    74  // Open - null interface
    75  func (t *Null) Open() {}
    76  
    77  // Close - null interface
    78  func (t *Null) Close() {}
    79  
    80  // ForceClose - null interface
    81  func (t *Null) ForceClose() {}