github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/query/util/json/noop_writer.go (about)

     1  // Copyright (c) 2018 Uber Technologies, Inc.
     2  //
     3  // Permission is hereby granted, free of charge, to any person obtaining a copy
     4  // of this software and associated documentation files (the "Software"), to deal
     5  // in the Software without restriction, including without limitation the rights
     6  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     7  // copies of the Software, and to permit persons to whom the Software is
     8  // furnished to do so, subject to the following conditions:
     9  //
    10  // The above copyright notice and this permission notice shall be included in
    11  // all copies or substantial portions of the Software.
    12  //
    13  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    14  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    15  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    16  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    17  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    18  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    19  // THE SOFTWARE.
    20  
    21  package json
    22  
    23  type noopWriter struct{}
    24  
    25  // NewNoopWriter creates a JSON writer that does nothing.
    26  func NewNoopWriter() Writer {
    27  	return &noopWriter{}
    28  }
    29  
    30  // BeginObject begins a new object
    31  func (w *noopWriter) BeginObject() {
    32  }
    33  
    34  // BeginObjectField begins a new object field with the given name
    35  func (w *noopWriter) BeginObjectField(name string) {
    36  }
    37  
    38  // BeginObjectBytesField begins a new object field with the given bytes name
    39  func (w *noopWriter) BeginObjectBytesField(name []byte) {
    40  }
    41  
    42  // EndObject finishes an open object
    43  func (w *noopWriter) EndObject() {
    44  }
    45  
    46  // BeginArray begins a new array value
    47  func (w *noopWriter) BeginArray() {
    48  }
    49  
    50  // EndArray finishes an array value
    51  func (w *noopWriter) EndArray() {
    52  }
    53  
    54  // WriteBool writes a boolean value
    55  func (w *noopWriter) WriteBool(b bool) {
    56  }
    57  
    58  // WriteNull writes a null value
    59  func (w *noopWriter) WriteNull() {
    60  }
    61  
    62  // WriteFloat64 writes a float value
    63  func (w *noopWriter) WriteFloat64(n float64) {
    64  }
    65  
    66  // WriteInt writes an int value
    67  func (w *noopWriter) WriteInt(n int) {
    68  }
    69  
    70  // WriteString writes a string value
    71  func (w *noopWriter) WriteString(s string) {
    72  }
    73  
    74  // WriteBytesString writes a bytes string value
    75  func (w *noopWriter) WriteBytesString(s []byte) {
    76  }
    77  
    78  // Flush flushes the writer
    79  func (w *noopWriter) Flush() error {
    80  	return nil
    81  }
    82  
    83  // Close closes the writer, returning any write errors that have occurred
    84  func (w *noopWriter) Close() error {
    85  	return nil
    86  }