messagefilter

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package messagefilter provides composable filters over slices of messages, used to select which messages a context provider stores or forwards. Filters compose with And and Or and remove messages from the input in place.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExternalOnly

func ExternalOnly(_ context.Context, messages []*message.Message) ([]*message.Message, error)

ExternalOnly returns only messages whose source type is external.

A zero source type is considered external. The filter operates in place by compacting the input slice.

func None

func None(_ context.Context, messages []*message.Message) ([]*message.Message, error)

None returns no messages, reusing the input slice storage when possible.

func PassThrough

func PassThrough(_ context.Context, messages []*message.Message) ([]*message.Message, error)

PassThrough returns all messages unchanged.

Types

type Filter

type Filter func(context.Context, []*message.Message) ([]*message.Message, error)

Filter represents a function that filters a slice of messages, potentially returning an error.

Implementations are expected to modify/re-slice the provided slice in place (for example via messages[:0]) and return the filtered view.

Implementations must only remove messages from the input. They must not add new messages that were not already present in the provided slice.

func And

func And(filters ...Filter) Filter

And composes multiple filters and applies them in order.

Nil filters are skipped. If any filter returns an error, execution stops and the error is returned.

func NotSourceTypes

func NotSourceTypes(sourceTypes ...message.SourceType) Filter

NotSourceTypes returns messages whose source type is not in the provided deny list.

func NotSources

func NotSources(sources ...message.Source) Filter

NotSources returns messages whose source is not in the provided deny list.

func Or

func Or(filters ...Filter) Filter

Or composes filters and keeps messages that are kept by at least one filter.

Nil filters are skipped. If any filter returns an error, execution stops and the error is returned. If no non-nil filters are provided, no messages are kept.

func Sources

func Sources(sources ...message.Source) Filter

Sources returns only messages whose source is in the provided allow list.

Jump to

Keyboard shortcuts

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