mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-02 20:02:25 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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
 | 
						|
}
 | 
						|
 | 
						|
// ValueWriterFlusher is a superset of ValueWriter that exposes functionality to flush to the underlying buffer.
 | 
						|
//
 | 
						|
// Deprecated: ValueWriterFlusher will not be supported in Go Driver 2.0.
 | 
						|
type ValueWriterFlusher interface {
 | 
						|
	ValueWriter
 | 
						|
	Flush() 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.
 | 
						|
//
 | 
						|
// Deprecated: BytesWriter will not be supported in Go Driver 2.0.
 | 
						|
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.
 | 
						|
//
 | 
						|
// Deprecated: SliceWriter will not be supported in Go Driver 2.0.
 | 
						|
type SliceWriter []byte
 | 
						|
 | 
						|
// Write writes the bytes to the underlying slice.
 | 
						|
//
 | 
						|
// Deprecated: SliceWriter will not be supported in Go Driver 2.0.
 | 
						|
func (sw *SliceWriter) Write(p []byte) (int, error) {
 | 
						|
	written := len(p)
 | 
						|
	*sw = append(*sw, p...)
 | 
						|
	return written, nil
 | 
						|
}
 |