diff options
Diffstat (limited to 'vendor/go.mongodb.org/mongo-driver/bson/bsonrw/reader.go')
-rw-r--r-- | vendor/go.mongodb.org/mongo-driver/bson/bsonrw/reader.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/reader.go b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/reader.go new file mode 100644 index 000000000..0b8fa28d5 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/reader.go @@ -0,0 +1,63 @@ +// 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" +) + +// ArrayReader is implemented by types that allow reading values from a BSON +// array. +type ArrayReader interface { + ReadValue() (ValueReader, error) +} + +// DocumentReader is implemented by types that allow reading elements from a +// BSON document. +type DocumentReader interface { + ReadElement() (string, ValueReader, error) +} + +// ValueReader is a generic interface used to read values from BSON. This type +// is implemented by several types with different underlying representations of +// BSON, such as a bson.Document, raw BSON bytes, or extended JSON. +type ValueReader interface { + Type() bsontype.Type + Skip() error + + ReadArray() (ArrayReader, error) + ReadBinary() (b []byte, btype byte, err error) + ReadBoolean() (bool, error) + ReadDocument() (DocumentReader, error) + ReadCodeWithScope() (code string, dr DocumentReader, err error) + ReadDBPointer() (ns string, oid primitive.ObjectID, err error) + ReadDateTime() (int64, error) + ReadDecimal128() (primitive.Decimal128, error) + ReadDouble() (float64, error) + ReadInt32() (int32, error) + ReadInt64() (int64, error) + ReadJavascript() (code string, err error) + ReadMaxKey() error + ReadMinKey() error + ReadNull() error + ReadObjectID() (primitive.ObjectID, error) + ReadRegex() (pattern, options string, err error) + ReadString() (string, error) + ReadSymbol() (symbol string, err error) + ReadTimestamp() (t, i uint32, err error) + ReadUndefined() error +} + +// BytesReader is a generic interface used to read BSON bytes from a +// ValueReader. This imterface is meant to be a superset of ValueReader, so that +// types that implement ValueReader may also implement this interface. +// +// The bytes of the value will be appended to dst. +type BytesReader interface { + ReadValueBytes(dst []byte) (bsontype.Type, []byte, error) +} |