r3yaml

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package r3yaml converts r3 query types (r3.Filters, r3.Sorts, r3.PaginationSpec, r3.Fields) to and from YAML for configuration files. Unlike the JSON dialect's compact f/op/v, it uses human-readable names (field/operator/value).

Index

Constants

This section is empty.

Variables

View Source
var ErrYAMLDialectorFailed = errors.New("yaml dialector failed")

ErrYAMLDialectorFailed is a generic error for r3yaml dialector failures.

Functions

func IsErrDialectorFailure

func IsErrDialectorFailure(err error) bool

IsErrDialectorFailure checks if the given error is a r3yaml failure.

func YAMLToField

func YAMLToField(yf YAMLField) *r3.FieldSpec

YAMLToField converts a YAMLField to a FieldSpec.

func YAMLToFilter

func YAMLToFilter(yf *YAMLFilter) (*r3.FilterSpec, error)

YAMLToFilter converts a YAMLFilter to a FilterSpec.

func YAMLToFilters

func YAMLToFilters(yfs YAMLFilters) (r3.Filters, error)

YAMLToFilters converts a slice of YAMLFilters to r3.Filters.

func YAMLToPagination

func YAMLToPagination(yp *YAMLPagination) (*r3.PaginationSpec, error)

YAMLToPagination converts a YAMLPagination to a PaginationSpec.

func YAMLToSort

func YAMLToSort(ys *YAMLSort) (*r3.SortSpec, error)

YAMLToSort converts a YAMLSort to a SortSpec.

Types

type YAMLCursorPagination

type YAMLCursorPagination struct {
	After  string `yaml:"after,omitempty"`
	Before string `yaml:"before,omitempty"`
	Limit  int    `yaml:"limit,omitempty"`
}

YAMLCursorPagination represents cursor-based pagination in YAML format.

func (*YAMLCursorPagination) ToCursorSpec

func (yc *YAMLCursorPagination) ToCursorSpec() *r3.CursorSpec

ToCursorSpec converts YAMLCursorPagination to an r3.CursorSpec. Returns nil if no cursor parameters are set.

type YAMLField

type YAMLField string

YAMLField is a string value representing a field name in YAML.

func FieldToYAML

func FieldToYAML(f *r3.FieldSpec) YAMLField

FieldToYAML converts a FieldSpec to a YAMLField.

func (YAMLField) String

func (f YAMLField) String() string

String returns the string representation of the field.

type YAMLFields

type YAMLFields []YAMLField

YAMLFields is a collection of YAMLField values.

type YAMLFilter

type YAMLFilter struct {
	Field    string        `yaml:"field,omitempty"`
	Operator string        `yaml:"operator,omitempty"` // canonical: "eq", "gt", etc.
	Value    any           `yaml:"value,omitempty"`
	And      []*YAMLFilter `yaml:"and,omitempty"`
	Or       []*YAMLFilter `yaml:"or,omitempty"`
}

YAMLFilter represents a filter criteria in YAML format.

func FilterToYAML

func FilterToYAML(f *r3.FilterSpec) (*YAMLFilter, error)

FilterToYAML converts a FilterSpec to a YAMLFilter.

func (*YAMLFilter) ToFilterSpec

func (yf *YAMLFilter) ToFilterSpec() (*r3.FilterSpec, error)

ToFilterSpec converts a YAMLFilter to an r3.FilterSpec.

type YAMLFilters

type YAMLFilters []*YAMLFilter

YAMLFilters is a slice of YAMLFilter.

type YAMLPagination

type YAMLPagination struct {
	PageNum  int `yaml:"page_num,omitempty"`
	PageSize int `yaml:"page_size,omitempty"`
}

YAMLPagination represents pagination in YAML format.

func PaginationToYAML

func PaginationToYAML(p *r3.PaginationSpec) *YAMLPagination

PaginationToYAML converts a PaginationSpec to a YAMLPagination.

func (*YAMLPagination) ToPaginationSpec

func (yp *YAMLPagination) ToPaginationSpec() (*r3.PaginationSpec, error)

ToPaginationSpec converts a YAMLPagination to an r3.PaginationSpec.

type YAMLSort

type YAMLSort struct {
	Field         string `yaml:"field"`
	Direction     string `yaml:"direction,omitempty"`
	NullsPosition string `yaml:"nulls_position,omitempty"`
}

YAMLSort represents a sort criteria in YAML format.

func SortToYAML

func SortToYAML(s *r3.SortSpec) *YAMLSort

SortToYAML converts a SortSpec to a YAMLSort.

func (*YAMLSort) ToSortSpec

func (ys *YAMLSort) ToSortSpec() (*r3.SortSpec, error)

ToSortSpec converts a YAMLSort to an r3.SortSpec.

Jump to

Keyboard shortcuts

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