immutable

package
v0.0.0-...-5fef39c Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2024 License: MIT Imports: 0 Imported by: 56

README

immutable

Package immutable is a helper package for the immutable data structures generated by myitcv.io/immutable/cmd/immutableGen.

go get -u myitcv.io/immutable

See the immutableGen docs for more details.

Contributors

Documentation

Overview

Package immutable is a helper package for the immutable data structures generated by myitcv.io/immutable/cmd/immutableGen.

Index

Constants

View Source
const (
	CmdImmutableGen = "immutableGen"
	CmdImmutableVet = "immutableVet"
)
View Source
const (
	// ImmTypeTmplPrefix is the prefix used to identify immutable type templates
	ImmTypeTmplPrefix = "_Imm_"

	// Pkg is the import path of this package
	PkgImportPath = "myitcv.io/immutable"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Immutable

type Immutable interface {
	Mutable() bool
	IsDeeplyNonMutable(seen map[interface{}]bool) bool
}

Immutable is the interface implemented by all immutable types. If Go had generics the interface would be defined, assuming a generic type parameter T, as follows:

type Immutable<T> interface {
	Mutable() bool
	AsMutable() T
	AsImmutable(T) T
	WithMutable(func(T)) T
	WithImmutable(func(T)) T
	IsDeeplyNonMutable(map[interface{}]bool) bool
}

Because we do not have such a type parameter we can only define the Mutable() method in the interface

Directories

Path Synopsis
cmd
immutableGen
immutableGen is a go generate generator that creates immutable struct, map and slice type declarations from template type declarations.
immutableGen is a go generate generator that creates immutable struct, map and slice type declarations from template type declarations.

Jump to

Keyboard shortcuts

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