diff options
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/writer.go')
-rw-r--r-- | src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/writer.go | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/writer.go b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/writer.go deleted file mode 100644 index 128b79bdfa0..00000000000 --- a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/writer.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (C) MongoDB, Inc. 2017-present. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. You may obtain -// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 - -package bsonrw - -import ( - "go.mongodb.org/mongo-driver/bson/bsontype" - "go.mongodb.org/mongo-driver/bson/primitive" -) - -// ArrayWriter is the interface used to create a BSON or BSON adjacent array. -// Callers must ensure they call WriteArrayEnd when they have finished creating -// the array. -type ArrayWriter interface { - WriteArrayElement() (ValueWriter, error) - WriteArrayEnd() error -} - -// DocumentWriter is the interface used to create a BSON or BSON adjacent -// document. Callers must ensure they call WriteDocumentEnd when they have -// finished creating the document. -type DocumentWriter interface { - WriteDocumentElement(string) (ValueWriter, error) - WriteDocumentEnd() error -} - -// ValueWriter is the interface used to write BSON values. Implementations of -// this interface handle creating BSON or BSON adjacent representations of the -// values. -type ValueWriter interface { - WriteArray() (ArrayWriter, error) - WriteBinary(b []byte) error - WriteBinaryWithSubtype(b []byte, btype byte) error - WriteBoolean(bool) error - WriteCodeWithScope(code string) (DocumentWriter, error) - WriteDBPointer(ns string, oid primitive.ObjectID) error - WriteDateTime(dt int64) error - WriteDecimal128(primitive.Decimal128) error - WriteDouble(float64) error - WriteInt32(int32) error - WriteInt64(int64) error - WriteJavascript(code string) error - WriteMaxKey() error - WriteMinKey() error - WriteNull() error - WriteObjectID(primitive.ObjectID) error - WriteRegex(pattern, options string) error - WriteString(string) error - WriteDocument() (DocumentWriter, error) - WriteSymbol(symbol string) error - WriteTimestamp(t, i uint32) error - WriteUndefined() error -} - -// BytesWriter is the interface used to write BSON bytes to a ValueWriter. -// This interface is meant to be a superset of ValueWriter, so that types that -// implement ValueWriter may also implement this interface. -type BytesWriter interface { - WriteValueBytes(t bsontype.Type, b []byte) error -} - -// SliceWriter allows a pointer to a slice of bytes to be used as an io.Writer. -type SliceWriter []byte - -func (sw *SliceWriter) Write(p []byte) (int, error) { - written := len(p) - *sw = append(*sw, p...) - return written, nil -} - -type writer []byte - -func (w *writer) Write(p []byte) (int, error) { - index := len(*w) - return w.WriteAt(p, int64(index)) -} - -func (w *writer) WriteAt(p []byte, off int64) (int, error) { - newend := off + int64(len(p)) - if newend < int64(len(*w)) { - newend = int64(len(*w)) - } - - if newend > int64(cap(*w)) { - buf := make([]byte, int64(2*cap(*w))+newend) - copy(buf, *w) - *w = buf - } - - *w = []byte(*w)[:newend] - copy([]byte(*w)[off:], p) - return len(p), nil -} |