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() {}