contract

package
v0.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2025 License: Apache-2.0 Imports: 20 Imported by: 118

Documentation

Index

Constants

View Source
const (
	EntityIDKey    = "entity_id"
	EntityIDsKey   = "entity_ids"
	PrincipalIDKey = "principal_id"
	RoleKey        = "role"
)
View Source
const (
	MongoLookupFullDocument  MongoLookupTarget = "fullDocument"
	MongoLookupDocumentKey   MongoLookupTarget = "documentKey"
	MongoLookupOperationType MongoLookupTarget = "operationType"
	TypeArray                AtlasDataType     = "array"
	TypeBoolean              AtlasDataType     = "boolean"
	TypeDate                 AtlasDataType     = "date"
	TypeFacetDate            AtlasDataType     = "dateFacet"
	TypeNumber               AtlasDataType     = "number"
	TypeFacetNumber          AtlasDataType     = "numberFacet"
	TypeGeo                  AtlasDataType     = "geo"
	TypeDocument             AtlasDataType     = "document"
	TypeEmbeddedDoc          AtlasDataType     = "embeddedDocument"
	TypeObjectID             AtlasDataType     = "objectId"
	TypeString               AtlasDataType     = "string"
	TypeFacetString          AtlasDataType     = "stringFacet"
	TypeAutocomplete         AtlasDataType     = "autocomplete"
	TypeToken                AtlasDataType     = "token"
	VerbElemMatch            MongoVerb         = "$elemMatch"
	VerbMatch                MongoVerb         = "$match"
	VerbSkip                 MongoVerb         = "$skip"
	VerbLimit                MongoVerb         = "$limit"
	VerbSort                 MongoVerb         = "$sort"
	VerbCount                MongoVerb         = "$count"
	VerbSearch               MongoVerb         = "$search"
	OpAnd                    BSONOperator      = "$and"
	OpOr                     BSONOperator      = "$or"
	OpNor                    BSONOperator      = "$nor"
	OpGT                     BSONOperator      = "$gt"
	OpGTE                    BSONOperator      = "$gte"
	OpLT                     BSONOperator      = "$lt"
	OpLTE                    BSONOperator      = "$lte"
	OpNE                     BSONOperator      = "$ne"
	OpIn                     BSONOperator      = "$in"
	OpNin                    BSONOperator      = "$nin"
	Ascending                SortDirection     = 1
	Descending               SortDirection     = -1
	MatchAll                 MatchBehavior     = "$all"
	MatchIn                  MatchBehavior     = "$in"
	MatchEqual               MatchBehavior     = "$eq"
)
View Source
const DefaultIndent = "  "

Variables

View Source
var ErrInvalidInput = errors.New("invalid input")

Functions

func ApplyComp

func ApplyComp[T any](c *T, modifiers ...CompOption[T]) T

func ApplyMeta

func ApplyMeta[T any](m *T, modifiers ...MetaOption[T]) T

Types

type AtlasDataType added in v0.0.5

type AtlasDataType = string

AtlasDataType represents the data types recognized by MongoDB Atlas.

type BSONOperator added in v0.0.5

type BSONOperator = string

BSONOperator represents BSON query operators in MongoDB.

type Base64Decoder added in v0.0.5

type Base64Decoder interface {
	DecodeString(enc *base64.Encoding, src string) ([]byte, error)
}

type CacheHit added in v0.0.5

type CacheHit struct {
	V string `json:"v"`
}

CacheHit represents a cache entry that holds a JSON string.

type CacheHitter added in v0.0.5

type CacheHitter interface {
	DecodeHit(c CacheHit, dst any) error
	HitFromValue(v any) (*CacheHit, error)
}

type CacheID added in v0.0.5

type CacheID string

func (CacheID) String added in v0.0.5

func (c CacheID) String() string

type CacheIdentifier added in v0.0.5

type CacheIdentifier interface {
	CacheID(id string) (CacheID, error)
}

type CacheKey added in v0.0.5

type CacheKey struct {
	ID           fmt.Stringer
	Microservice string
	Collection   string
	Multi        *CacheMulti
}

CacheKey represents a cache key. It is used to identify a cache entry & it can be used to generate a matching pattern using wildcards.

func (CacheKey) String added in v0.0.5

func (c CacheKey) String() string

String implements the Stringer interface for Key.

type CacheMulti added in v0.0.5

type CacheMulti struct {
	RawQuery string
}

type CacheOperator added in v0.0.5

type CacheOperator interface {
	Get(ctx context.Context, c fmt.Stringer) (*CacheHit, error)
	Set(ctx context.Context, c fmt.Stringer, v CacheHit) error
	BatchGet(ctx context.Context, c []fmt.Stringer) ([]CacheHit, error)
	BatchSet(ctx context.Context, e map[fmt.Stringer]CacheHit) error
	Flush(ctx context.Context, c fmt.Stringer) error
	BatchFlush(ctx context.Context, c []fmt.Stringer) error
	FlushAll(ctx context.Context) error
	Exists(ctx context.Context, c fmt.Stringer) (bool, error)
}

type Cacher added in v0.0.5

type Cacher interface {
	CacheIdentifier
	CacheHitter
	CacheOperator
}

type CertGenerator added in v0.0.5

type CertGenerator interface {
	X509KeyPair(certPEMBlock []byte, keyPEMBlock []byte) (tls.Certificate, error)
	AppendCertsFromPEM(pool *x509.CertPool, pemCerts []byte) (ok bool)
}

type ChangeEvent added in v0.0.5

type ChangeEvent struct {
	OperationType string `json:"operation_type"`
	FullDocument  any    `json:"full_document"`
}

type CompOption

type CompOption[T any] func(*T)

type DBOperator added in v0.0.5

type DBOperator interface {
	InsertOne(ctx context.Context, opts InsertOneOptions) error
	FindOne(ctx context.Context, opts FindOneOptions) error
	FindMany(ctx context.Context, opts FindManyOptions) ([]any, error)
	ReplaceOne(ctx context.Context, opts ReplaceOneOptions) error
	DeleteOne(ctx context.Context, opts DeleteOneOptions) error
	DeleteMany(ctx context.Context, opts DeleteManyOptions) error
}

type DateFilterOptions added in v0.0.5

type DateFilterOptions struct {
	YearField  string
	MonthField string
	DayField   string
	RefYear    uint
	RefMonth   uint
	RefDay     uint
	IncludeDay bool
}

type DecodeCursorOptions added in v0.0.5

type DecodeCursorOptions struct {
	Cursor   MongoCursor
	Receiver any
}

type DeleteManyOptions added in v0.0.5

type DeleteManyOptions struct {
	Collection MongoCollection
	Filter     bson.M
}

type DeleteOneOptions added in v0.0.5

type DeleteOneOptions struct {
	Collection MongoCollection
	IDKey      string
	ID         Identifier
}

type ElemMatchFilterOptions added in v0.0.5

type ElemMatchFilterOptions struct {
	ArrayField string
	Element    any
	PrependStr string
	AppendStr  string
}

type ElemsInArrayFilterOptions added in v0.0.5

type ElemsInArrayFilterOptions struct {
	ArrayField string
	Elements   []any
	PrependStr string
	AppendStr  string
}

type FSysFileReader

type FSysFileReader interface {
	FSysReadFile(fsys fs.ReadFileFS, path string) ([]byte, error)
}

type FieldInArrayFilterOptions added in v0.0.5

type FieldInArrayFilterOptions struct {
	Field    string
	Elements []any
}

type FilterOptions added in v0.0.5

type FilterOptions struct {
	ConvertValues  bool
	QueryParams    map[string][]string
	MatchBehavior  MatchBehavior
	PrependStr     string
	AppendStr      string
	ExcludedFields []string
}

type FindManyOptions added in v0.0.5

type FindManyOptions struct {
	Collection    MongoCollection
	Filter        bson.M
	SortByKey     string
	SortDirection SortDirection
	Skip          int64
	Limit         int64
	Receiver      any
}

type FindOneOptions added in v0.0.5

type FindOneOptions struct {
	Collection MongoCollection
	Receiver   any
	IDKey      string
	ID         Identifier
}

type Geocoder

type Geocoder interface {
	TimezoneFromCoordinates(ctx context.Context, latitude, longitude float64) (string, error)
	CityFromCoordinates(ctx context.Context, latitude, longitude float64) (string, error)
	TimezoneDataFromCoordinates(ctx context.Context, latitude, longitude float64) (*maps.TimezoneResult, error)
	GeocodeCoordinates(ctx context.Context, latitude, longitude float64) ([]maps.GeocodingResult, error)
	SwapTimezone(t time.Time, tz string, toUTC, toMidnight bool) (time.Time, error)
	IsUTC(t time.Time) bool
}

type GoogleMaps added in v0.0.5

type GoogleMaps interface {
	Timezone(ctx context.Context, r *maps.TimezoneRequest) (*maps.TimezoneResult, error)
	Geocode(ctx context.Context, r *maps.GeocodingRequest) ([]maps.GeocodingResult, error)
}

type GzipReader

type GzipReader interface {
	Read(r io.Reader) (io.Reader, error)
}

type GzipUtil

type GzipUtil interface {
	WriteGzip(w *gzip.Writer, r io.Reader) error
	CloseGzipWriter(w *gzip.Writer) error
	ReadGzip(r io.Reader) ([]byte, error)
	NewGzipReader(r io.Reader) (*gzip.Reader, error)
	CopyToBuffer(r *gzip.Reader, buf *bytes.Buffer) error
	CloseGzipReader(r *gzip.Reader) error
}

type GzipWriter

type GzipWriter interface {
	Write(r io.Reader) (io.Reader, int64, error)
}

type HTTPClient added in v0.0.5

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

type HTTPDoer

type HTTPDoer interface {
	Do(ctx context.Context, r *http.Request) (*http.Response, error)
}

type HTTPHTML added in v0.1.5

type HTTPHTML interface {
	ServeHTML(w http.ResponseWriter, body io.Reader, status int)
}

type HTTPRequester

type HTTPRequester interface {
	NewRequest(ctx context.Context, method, url string, opts RequestOptions) (*http.Request, error)
}

type HTTPResponder added in v0.1.5

type HTTPResponder interface {
	RespondJSON(w http.ResponseWriter, v any, status int, escapeHTML bool) error
	RespondError(w http.ResponseWriter, status int, escapeHTML bool)
	RespondGzipJSON(w http.ResponseWriter, v any, status int, escapeHTML bool) error
	RespondGzipError(w http.ResponseWriter, status int, escapeHTML bool)
}

type HTTPUtil added in v0.1.5

type HTTPUtil interface {
	QueryString(pairs ...string) string
	ValidateQueryParams(q map[string][]string, rules ...*QueryParamRule) error
	CopyHeaders(dst, src *http.Request, headers ...string)
	GetHeaders(r *http.Request) http.Header
	DecodeBody(r *http.Request, v any) error
}

type HTTPWriter

type HTTPWriter interface {
	Write(w http.ResponseWriter, b []byte) (int, error)
}

type ID added in v0.0.8

type ID struct {
	// V is a unique identifier.
	// example: 123e4567-e89b-12d3-a456-426655440000
	// required:true
	V *string `json:"id"`
}

ID is a custom type for database-agnostic unique IDs. swagger:model

func NewID added in v0.0.8

func NewID() *ID

NewDBID generates a new ID.

func NewIDFromString added in v0.0.8

func NewIDFromString(v string) *ID

NewIDFromString converts string to ID.

func (*ID) GetV added in v0.0.8

func (id *ID) GetV() string

func (*ID) IsEmpty added in v0.0.8

func (id *ID) IsEmpty() bool

IsEmpty checks if the ID is empty.

func (ID) MarshalBSON added in v0.0.8

func (id ID) MarshalBSON() ([]byte, error)

MarshalBSON implements the bson.Marshaler interface for Mongo compatibility.

func (*ID) SetV added in v0.0.8

func (id *ID) SetV(x string)

func (*ID) String added in v0.0.8

func (id *ID) String() string

String implements the Stringer interface.

func (*ID) UnmarshalBSON added in v0.0.8

func (id *ID) UnmarshalBSON(data []byte) error

UnmarshalBSON implements the bson.Unmarshaler interface for Mongo compatibility.

type Identifiable added in v0.0.5

type Identifiable interface {
	GetID() Identifier
}

type Identifier added in v0.0.5

type Identifier interface {
	GetV() string
	SetV(string)
	IsEmpty() bool
	fmt.Stringer
}

type IndexEntry added in v0.0.5

type IndexEntry struct {
	Name               string
	Field              string
	Type               int32
	ExpireAfterSeconds *int32
}

type InsertOneOptions added in v0.0.5

type InsertOneOptions struct {
	Collection MongoCollection
	Document   Identifiable
}

type JSONOption

type JSONOption func(*JSONOptions)

func WithJSONEscapeHTML

func WithJSONEscapeHTML(escape bool) JSONOption

func WithJSONIndent

func WithJSONIndent(indent string) JSONOption

func WithJSONUseNumber

func WithJSONUseNumber(use bool) JSONOption

type JSONOptions

type JSONOptions struct {
	Indent     string // Enables indentation if non-empty.
	EscapeHTML bool   // Determines if HTML characters should be escaped.
	UseNumber  bool   // If true, decodes numbers as `json.Number` instead of `float64`.
}

JSONOptions defines settings for encoding/decoding.

func ApplyJSONOptions

func ApplyJSONOptions(opts *JSONOptions, modifiers ...JSONOption) JSONOptions

type Level

type Level = slog.Level
const (
	Debug Level = slog.LevelDebug
	Info  Level = slog.LevelInfo
	Warn  Level = slog.LevelWarn
	Error Level = slog.LevelError
)

type Logger

type Logger interface {
	Log(ctx context.Context, l Level, v any, prefix string, msg ...string)
	Wrap(ctx context.Context, fn func() (any, error)) error
}

type Marshaler

type Marshaler interface {
	Marshal(v any, opts JSONOptions) ([]byte, error)
}

type MatchBehavior added in v0.0.5

type MatchBehavior = string

MatchBehavior defines different matching behaviors in MongoDB queries, such as in, all, and eq.

type MetaOption

type MetaOption[T any] func(*T)

type MongoChangeStream added in v0.0.5

type MongoChangeStream interface {
	Close(ctx context.Context) error
	Next(ctx context.Context) bool
	Err() error
}

type MongoClient added in v0.0.5

type MongoClient interface {
	Database(name string, opts ...options.Lister[options.DatabaseOptions]) *mongo.Database
	StartSession(opts ...options.Lister[options.SessionOptions]) (*mongo.Session, error)
}

type MongoCollection added in v0.0.5

type MongoCollection interface {
	InsertOne(ctx context.Context, document any, opts ...options.Lister[options.InsertOneOptions]) (*mongo.InsertOneResult, error)
	FindOne(ctx context.Context, filter any, opts ...options.Lister[options.FindOneOptions]) *mongo.SingleResult
	Find(ctx context.Context, filter any, opts ...options.Lister[options.FindOptions]) *mongo.Cursor
	ReplaceOne(ctx context.Context, filter any, document any, opts ...options.Lister[options.ReplaceOptions]) (*mongo.UpdateResult, error)
	DeleteOne(ctx context.Context, filter any, opts ...options.Lister[options.DeleteOneOptions]) (*mongo.DeleteResult, error)
	DeleteMany(ctx context.Context, filter any, opts ...options.Lister[options.DeleteManyOptions]) (*mongo.DeleteResult, error)
	Aggregate(ctx context.Context, pipeline any, opts ...options.Lister[options.AggregateOptions]) (*mongo.Cursor, error)
	Watch(ctx context.Context, pipeline any, opts ...options.Lister[options.ChangeStreamOptions]) (*mongo.ChangeStream, error)
}

type MongoCursor added in v0.0.5

type MongoCursor interface {
	Next(ctx context.Context) bool
	Decode(receiver any) error
	Err() error
}

type MongoDatabase added in v0.0.5

type MongoDatabase interface {
	Watch(ctx context.Context, pipeline any, opts ...options.Lister[options.ChangeStreamOptions]) (*mongo.ChangeStream, error)
}

type MongoFilter added in v0.0.5

type MongoFilter interface {
	Filter(opts FilterOptions) (bson.M, error)
	FilterByFieldInArray(opts FieldInArrayFilterOptions) bson.M
	FilterByElemMatch(opts ElemMatchFilterOptions) bson.M
	FilterByElemsInArray(opts ElemsInArrayFilterOptions) bson.M
	FilterByAllElemsInArray(opts ElemsInArrayFilterOptions) bson.M
	FilterByFutureDate(opts DateFilterOptions) bson.D
	FilterByPastDate(opts DateFilterOptions) bson.D
	FilterByExactDate(opts DateFilterOptions) bson.D
	CombineM(op BSONOperator, m ...bson.M) bson.M
}

type MongoLookupTarget added in v0.0.5

type MongoLookupTarget = string

MongoLookupTarget specifies the target field for the lookup stage in a MongoDB aggregation pipeline.

type MongoOperator added in v0.0.5

type MongoOperator interface {
	MongoUtil
	MongoFilter
	MongoSpecialized
}

type MongoOutCSChan added in v0.0.5

type MongoOutCSChan = chan *ChangeEvent

MongoOutCSChan is a channel type used for sending decoded MongoDB change events.

type MongoPipeliner added in v0.0.5

type MongoPipeliner interface {
	Pipeline() mongo.Pipeline
}

type MongoSpecialized added in v0.0.5

type MongoSpecialized interface {
	Search(ctx context.Context, opts SearchOptions) (*RespSearch, error)
	WatchCollection(ctx context.Context, opts WatchCollectionOptions) error
	WatchDB(ctx context.Context, opts WatchDBOptions) error
	ProcessChangeStream(ctx context.Context, opts ProcessChangeStreamOptions) error
}

type MongoUtil added in v0.0.5

type MongoUtil interface {
	CreateCollections(ctx context.Context, db string, collections ...string) error
	CreateIndexes(ctx context.Context, db, collection string, e []IndexEntry) error
	CreateSearchIndexes(ctx context.Context, db, collection string, e []SearchIndexEntry) error
	NewTransactionSession(ctx context.Context) (context.Context, error)
}

type MongoVerb added in v0.0.5

type MongoVerb = string

MongoVerb defines a MongoDB operation keyword, such as match.

type PaginationOptions added in v0.0.5

type PaginationOptions struct {
	PageNumber int32
	PageSize   int32
}

func (*PaginationOptions) Verify added in v0.0.5

func (p *PaginationOptions) Verify() error

type ProcessChangeStreamOptions added in v0.0.5

type ProcessChangeStreamOptions struct {
	ChangeStream MongoChangeStream
	LookupKey    string
	Receiver     any
	Output       MongoOutCSChan
}

type PubSubMessage added in v0.0.5

type PubSubMessage interface {
	GetData() []byte
	GetAttributes() map[string]string
	GetMessageID() string
	GetPublishTime() time.Time
}

type QueryParamRule added in v0.1.5

type QueryParamRule struct {
	Key                   string   // Name of the query parameter.
	DefaultValue          string   // Default value if not provided in the request.
	AcceptedValues        []string // Accepted values; nil allows any value.
	MultipleValuesAllowed bool     // Whether multiple values are permitted.
	Optional              bool     // Whether the parameter is optional.
}

QueryParamRule defines validation rules for a query parameter. It specifies constraints such as key, default value, allowed values, and multiplicity.

type RawCacheKey added in v0.1.3

type RawCacheKey string

RawCacheKey wraps a string key to implement fmt.Stringer.

func (RawCacheKey) String added in v0.1.3

func (r RawCacheKey) String() string

String implements the Stringer interface for RawCacheKey.

type Reader

type Reader interface {
	Read(io.Reader) ([]byte, error)
}

type RedisClient added in v0.0.5

type RedisClient interface {
	Get(ctx context.Context, key string) *redis.StringCmd
	Set(ctx context.Context, key string, value any, expiration time.Duration) *redis.StatusCmd
	FlushAll(ctx context.Context) *redis.StatusCmd
	Scan(ctx context.Context, cursor uint64, match string, count int64) *redis.ScanCmd
	TxPipeline() redis.Pipeliner
	Exists(ctx context.Context, keys ...string) *redis.IntCmd
}

type ReplaceOneOptions added in v0.0.5

type ReplaceOneOptions struct {
	Collection MongoCollection
	Document   Identifiable
	IDKey      string
	ID         Identifier
}

type RequestOption

type RequestOption func(*RequestOptions)

func WithRequestBody

func WithRequestBody(body io.Reader) RequestOption

func WithRequestHeader

func WithRequestHeader(header http.Header) RequestOption

type RequestOptions

type RequestOptions struct {
	Header http.Header
	Body   io.Reader
}

func ApplyRequestOptions

func ApplyRequestOptions(opts *RequestOptions, modifiers ...RequestOption) RequestOptions

type RespAuthorize added in v0.0.5

type RespAuthorize struct {
	// Code is the HTTP status code.
	// example:200
	// readOnly:true
	Code int `json:"code"`
}

RespAuthorize represents an authorization response for a single entity. swagger:model

type RespAuthorizeMany added in v0.0.5

type RespAuthorizeMany struct {
	// UnallowedEntities is the list of unauthorized entity IDs.
	// readOnly:true
	UnallowedEntities []ID `json:"unallowed_entities"`
}

RespAuthorizeMany represents an authorization response for multiple entities. swagger:model

type RespErr added in v0.0.5

type RespErr struct {
	// Code is the HTTP status code or custom error code.
	// example:400
	// readOnly:true
	Code int `json:"code"`
	// Message describes the error, written in Title Case.
	// example:Internal Server Error
	// readOnly:true
	Message string `json:"message"`
}

RespErr represents a standard error response from the application. swagger:model

type RespMsg added in v0.0.5

type RespMsg struct {
	// Message is the response message, written in Title Case.
	// example:Operation Completed
	// readOnly:true
	Message string `json:"message"`
}

RespMsg represents a simple message response from the application. swagger:model

type RespOperation added in v0.0.5

type RespOperation struct {
	// Message describes the result of the operation, written in Title Case.
	// example:Record Created Successfully
	// readOnly:true
	Message string `json:"message"`
	// ID is the identifier of the affected resource.
	// example:5f7b1b9b9b9b9b9b9b9b9b9b
	// readOnly:true
	ID string `json:"_id"`
}

RespOperation represents a standard response from a CRUD operation. swagger:model

type RespSearch added in v0.0.5

type RespSearch struct {
	// Results is the list of search results.
	// example:[{"id":"1","name":"Item1"},{"id":"2","name":"Item2"}]
	// readOnly:true
	Results []any `json:"results"`
	// TotalCount is the total number of matching results.
	// example:100
	// readOnly:true
	TotalCount int32 `json:"total_count"`
	// LastPage is the last page number based on total results.
	// example:10
	// readOnly:true
	LastPage int32 `json:"last_page"`
}

RespSearch represents the response from a search operation. swagger:model

type SearchIndexEntry added in v0.0.5

type SearchIndexEntry struct {
	Name        string
	Database    string
	Collection  string
	Fields      map[string]string
	VectorField *VectorSearchField
}

type SearchOptions added in v0.0.5

type SearchOptions struct {
	Filter        bson.M
	T             *TextOptions
	P             *PaginationOptions
	SortByKey     string
	SortDirection SortDirection
	Collection    MongoCollection
	Receiver      any
}

type Semaphore added in v0.0.6

type Semaphore interface {
	Acquire()
	Release()
	WaitAll()
}

type SortDirection added in v0.0.5

type SortDirection int

SortDirection represents the sorting order for MongoDB queries.

type TextOptions added in v0.0.5

type TextOptions struct {
	IndexName string
	Query     string
	Fields    []string
}

type Tool

type Tool[C any] struct {
	Client C
	Logger Logger
}

func NewTool

func NewTool[C any](client C, opts ToolOptions[C]) *Tool[C]

type ToolOption

type ToolOption[C any] func(*ToolOptions[C])

func WithLogger

func WithLogger[C any](l Logger) ToolOption[C]

type ToolOptions

type ToolOptions[C any] struct {
	Logger Logger
}

func ApplyOptions

func ApplyOptions[C any](opts *ToolOptions[C], modifiers ...ToolOption[C]) ToolOptions[C]

type Unmarshaler

type Unmarshaler interface {
	Unmarshal(data io.Reader, v any, opts JSONOptions) error
}

type VectorSearchField added in v0.0.5

type VectorSearchField struct {
	NumDimensions int
	Field         string
	Similarity    string
	Quantization  string
	Additionals   []string
}

type WatchCollectionOptions added in v0.0.5

type WatchCollectionOptions struct {
	Collection MongoCollection
	Receiver   any
	Pipeline   MongoPipeliner
	Options    *options.ChangeStreamOptionsBuilder
	LookupKey  string
	Output     MongoOutCSChan
}

type WatchDBOptions added in v0.0.5

type WatchDBOptions struct {
	Database  MongoDatabase
	Receiver  any
	Pipeline  MongoPipeliner
	Options   *options.ChangeStreamOptionsBuilder
	LookupKey string
	Output    MongoOutCSChan
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL