types

package module
v0.73.2 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 1 Imported by: 2

Documentation

Overview

Package types provides data structures and types for the logs system.

Index

Constants

View Source
const (
	InvalidFingerprintValue = 0
)

InvalidFingerprintValue is the value that is returned when a fingerprint cannot be produced

Variables

This section is empty.

Functions

This section is empty.

Types

type Fingerprint

type Fingerprint struct {
	Value  uint64
	Config *FingerprintConfig
}

Fingerprint struct that stores both the value and config used to derive that value

func (*Fingerprint) Equals

func (f *Fingerprint) Equals(other *Fingerprint) bool

Equals compares two fingerprints and returns true if they are equal

func (*Fingerprint) String

func (f *Fingerprint) String() string

String converts the fingerprint to a string

func (*Fingerprint) ValidFingerprint

func (f *Fingerprint) ValidFingerprint() bool

ValidFingerprint returns true if the fingerprint is valid (non-zero value and non-nil config)

type FingerprintConfig

type FingerprintConfig struct {
	// FingerprintStrategy defines the strategy used for fingerprinting. Options are:
	// - "line_checksum": compute checksum based on line content (default)
	// - "byte_checksum": compute checksum based on byte content
	// - "disabled": disable fingerprinting
	FingerprintStrategy FingerprintStrategy `json:"fingerprint_strategy" mapstructure:"fingerprint_strategy" yaml:"fingerprint_strategy"`

	// Count is the number of lines or bytes to use for fingerprinting, depending on the strategy
	Count int `json:"count" mapstructure:"count" yaml:"count"`

	// CountToSkip is the number of lines or bytes to skip before starting fingerprinting
	CountToSkip int `json:"count_to_skip" mapstructure:"count_to_skip" yaml:"count_to_skip"`

	// MaxBytes is only used for line-based fingerprinting to prevent overloading
	// when reading large files. It's ignored for byte-based fingerprinting.
	MaxBytes int `json:"max_bytes" mapstructure:"max_bytes" yaml:"max_bytes"`
}

FingerprintConfig defines the options for the fingerprint configuration.

type FingerprintStrategy

type FingerprintStrategy string

FingerprintStrategy defines the strategy used for fingerprinting

const (
	// FingerprintStrategyLineChecksum computes a checksum based on line content
	FingerprintStrategyLineChecksum FingerprintStrategy = "line_checksum"
	// FingerprintStrategyByteChecksum computes a checksum based on byte content
	FingerprintStrategyByteChecksum FingerprintStrategy = "byte_checksum"
	// FingerprintStrategyDisabled disables fingerprinting
	FingerprintStrategyDisabled FingerprintStrategy = "disabled"
)

func (FingerprintStrategy) String

func (s FingerprintStrategy) String() string

func (FingerprintStrategy) Validate

func (s FingerprintStrategy) Validate() error

Validate checks if the fingerprint strategy is valid (either line_checksum or byte_checksum)

Jump to

Keyboard shortcuts

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