func (c Copier) CopyDocument(dst ValueWriter, src ValueReader) error {
	dr, err := src.ReadDocument()
	if err != nil {
		return err
	}
	dw, err := dst.WriteDocument()
	if err != nil {
		return err
	}
	return c.copyDocumentCore(dw, dr)
}
CopyDocument handles copying one document from the src to the dst.
package bsonrw
import (
	"fmt"
	"io"
	"go.mongodb.org/mongo-driver/bson/bsontype"
	"go.mongodb.org/mongo-driver/bson/primitive"
	"go.mongodb.org/mongo-driver/x/bsonx/bsoncore"
)
type Copier struct{}
func NewCopier() Copier {
	return Copier{}
}
func CopyDocument(dst ValueWriter, src ValueReader) error {
	return Copier{}.CopyDocument(dst, src)
}