immutable

package module
v0.0.0-...-0f7b6ab Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2018 License: BSD-3-Clause Imports: 0 Imported by: 0

README

** myitcv.io/immutable ** has moved

The repository hosting myitcv.io/immutable has changed.

myitcv.io/immutable can now be found at:

https://github.com/myitcv/x/tree/master/immutable

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 {
	AsMutable() T
	AsImmutable() T
	WithMutations(f func(v T)) T
	Mutable() bool
}

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

Directories

Path Synopsis
_vendor
src/github.com/kisielk/gotool
Package gotool contains utility functions used to implement the standard "cmd/go" tool, provided as a convenience to developers who want to write tools with similar semantics.
Package gotool contains utility functions used to implement the standard "cmd/go" tool, provided as a convenience to developers who want to write tools with similar semantics.
src/golang.org/x/tools/benchmark/parse
Package parse provides support for parsing benchmark results as generated by 'go test -bench'.
Package parse provides support for parsing benchmark results as generated by 'go test -bench'.
src/golang.org/x/tools/blog
Package blog implements a web server for articles written in present format.
Package blog implements a web server for articles written in present format.
src/golang.org/x/tools/blog/atom
Package atom defines XML data structures for an Atom feed.
Package atom defines XML data structures for an Atom feed.
src/golang.org/x/tools/cmd/benchcmp
The benchcmp command displays performance changes between benchmarks.
The benchcmp command displays performance changes between benchmarks.
src/golang.org/x/tools/cmd/bundle
Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.
Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.
src/golang.org/x/tools/cmd/callgraph
callgraph: a tool for reporting the call graph of a Go program.
callgraph: a tool for reporting the call graph of a Go program.
src/golang.org/x/tools/cmd/cover
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
src/golang.org/x/tools/cmd/digraph
The digraph command performs queries over unlabelled directed graphs represented in text form.
The digraph command performs queries over unlabelled directed graphs represented in text form.
src/golang.org/x/tools/cmd/eg
The eg command performs example-based refactoring.
The eg command performs example-based refactoring.
src/golang.org/x/tools/cmd/fiximports
The fiximports command fixes import declarations to use the canonical import path for packages that have an "import comment" as defined by https://golang.org/s/go14customimport.
The fiximports command fixes import declarations to use the canonical import path for packages that have an "import comment" as defined by https://golang.org/s/go14customimport.
src/golang.org/x/tools/cmd/godex
The godex command prints (dumps) exported information of packages or selected package objects.
The godex command prints (dumps) exported information of packages or selected package objects.
src/golang.org/x/tools/cmd/godoc
Godoc extracts and generates documentation for Go programs.
Godoc extracts and generates documentation for Go programs.
src/golang.org/x/tools/cmd/goimports
Command goimports updates your Go import lines, adding missing ones and removing unreferenced ones.
Command goimports updates your Go import lines, adding missing ones and removing unreferenced ones.
src/golang.org/x/tools/cmd/gomvpkg
The gomvpkg command moves go packages, updating import declarations.
The gomvpkg command moves go packages, updating import declarations.
src/golang.org/x/tools/cmd/gorename
The gorename command performs precise type-safe renaming of identifiers in Go source code.
The gorename command performs precise type-safe renaming of identifiers in Go source code.
src/golang.org/x/tools/cmd/gotype
The gotype command does syntactic and semantic analysis of Go files and packages like the front-end of a Go compiler.
The gotype command does syntactic and semantic analysis of Go files and packages like the front-end of a Go compiler.
src/golang.org/x/tools/cmd/goyacc
Goyacc is a version of yacc for Go.
Goyacc is a version of yacc for Go.
src/golang.org/x/tools/cmd/guru
guru: a tool for answering questions about Go source code.
guru: a tool for answering questions about Go source code.
src/golang.org/x/tools/cmd/guru/serial
Package serial defines the guru's schema for -json output.
Package serial defines the guru's schema for -json output.
src/golang.org/x/tools/cmd/heapview
heapview is a tool for viewing Go heap dumps.
heapview is a tool for viewing Go heap dumps.
src/golang.org/x/tools/cmd/heapview/internal/core
Package core provides functions for reading core dumps and examining their contained heaps.
Package core provides functions for reading core dumps and examining their contained heaps.
src/golang.org/x/tools/cmd/html2article
This program takes an HTML file and outputs a corresponding article file in present format.
This program takes an HTML file and outputs a corresponding article file in present format.
src/golang.org/x/tools/cmd/present
Present displays slide presentations and articles.
Present displays slide presentations and articles.
src/golang.org/x/tools/cmd/ssadump
ssadump: a tool for displaying and interpreting the SSA form of Go programs.
ssadump: a tool for displaying and interpreting the SSA form of Go programs.
src/golang.org/x/tools/cmd/stress
The stress utility is intended for catching of episodic failures.
The stress utility is intended for catching of episodic failures.
src/golang.org/x/tools/cmd/stringer
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
src/golang.org/x/tools/cmd/tip
Command tip is the tip.golang.org server, serving the latest HEAD straight from the Git oven.
Command tip is the tip.golang.org server, serving the latest HEAD straight from the Git oven.
src/golang.org/x/tools/cmd/toolstash
Toolstash provides a way to save, run, and restore a known good copy of the Go toolchain and to compare the object files generated by two toolchains.
Toolstash provides a way to save, run, and restore a known good copy of the Go toolchain and to compare the object files generated by two toolchains.
src/golang.org/x/tools/container/intsets
Package intsets provides Sparse, a compact and fast representation for sparse sets of int values.
Package intsets provides Sparse, a compact and fast representation for sparse sets of int values.
src/golang.org/x/tools/cover
Package cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".
Package cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".
src/golang.org/x/tools/go/ast/astutil
Package astutil contains common utilities for working with the Go AST.
Package astutil contains common utilities for working with the Go AST.
src/golang.org/x/tools/go/buildutil
Package buildutil provides utilities related to the go/build package in the standard library.
Package buildutil provides utilities related to the go/build package in the standard library.
src/golang.org/x/tools/go/callgraph
Package callgraph defines the call graph and various algorithms and utilities to operate on it.
Package callgraph defines the call graph and various algorithms and utilities to operate on it.
src/golang.org/x/tools/go/callgraph/cha
Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.
Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.
src/golang.org/x/tools/go/callgraph/rta
This package provides Rapid Type Analysis (RTA) for Go, a fast algorithm for call graph construction and discovery of reachable code (and hence dead code) and runtime types.
This package provides Rapid Type Analysis (RTA) for Go, a fast algorithm for call graph construction and discovery of reachable code (and hence dead code) and runtime types.
src/golang.org/x/tools/go/callgraph/static
Package static computes the call graph of a Go program containing only static call edges.
Package static computes the call graph of a Go program containing only static call edges.
src/golang.org/x/tools/go/gccgoexportdata
Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.
Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.
src/golang.org/x/tools/go/gcexportdata
Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler.
Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler.
src/golang.org/x/tools/go/gcimporter15
Package gcimporter15 provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package.
Package gcimporter15 provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package.
src/golang.org/x/tools/go/internal/gccgoimporter
Package gccgoimporter implements Import for gccgo-generated object files.
Package gccgoimporter implements Import for gccgo-generated object files.
src/golang.org/x/tools/go/loader
Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.
Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.
src/golang.org/x/tools/go/pointer
Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994).
Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994).
src/golang.org/x/tools/go/ssa
Package ssa defines a representation of the elements of Go programs (packages, types, functions, variables and constants) using a static single-assignment (SSA) form intermediate representation (IR) for the bodies of functions.
Package ssa defines a representation of the elements of Go programs (packages, types, functions, variables and constants) using a static single-assignment (SSA) form intermediate representation (IR) for the bodies of functions.
src/golang.org/x/tools/go/ssa/interp
Package ssa/interp defines an interpreter for the SSA representation of Go programs.
Package ssa/interp defines an interpreter for the SSA representation of Go programs.
src/golang.org/x/tools/go/types/typeutil
Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values.
Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values.
src/golang.org/x/tools/godoc
Package godoc is a work-in-progress (2013-07-17) package to begin splitting up the godoc binary into multiple pieces.
Package godoc is a work-in-progress (2013-07-17) package to begin splitting up the godoc binary into multiple pieces.
src/golang.org/x/tools/godoc/analysis
Package analysis performs type and pointer analysis and generates mark-up for the Go source view.
Package analysis performs type and pointer analysis and generates mark-up for the Go source view.
src/golang.org/x/tools/godoc/redirect
Package redirect provides hooks to register HTTP handlers that redirect old godoc paths to their new equivalents and assist in accessing the issue tracker, wiki, code review system, etc.
Package redirect provides hooks to register HTTP handlers that redirect old godoc paths to their new equivalents and assist in accessing the issue tracker, wiki, code review system, etc.
src/golang.org/x/tools/godoc/static
Package static exports a map of static file content that supports the godoc user interface.
Package static exports a map of static file content that supports the godoc user interface.
src/golang.org/x/tools/godoc/util
Package util contains utility types and functions for godoc.
Package util contains utility types and functions for godoc.
src/golang.org/x/tools/godoc/vfs
Package vfs defines types for abstract file system access and provides an implementation accessing the file system of the underlying OS.
Package vfs defines types for abstract file system access and provides an implementation accessing the file system of the underlying OS.
src/golang.org/x/tools/godoc/vfs/gatefs
Package gatefs provides an implementation of the FileSystem interface that wraps another FileSystem and limits its concurrency.
Package gatefs provides an implementation of the FileSystem interface that wraps another FileSystem and limits its concurrency.
src/golang.org/x/tools/godoc/vfs/httpfs
Package httpfs implements http.FileSystem using a godoc vfs.FileSystem.
Package httpfs implements http.FileSystem using a godoc vfs.FileSystem.
src/golang.org/x/tools/godoc/vfs/mapfs
Package mapfs file provides an implementation of the FileSystem interface based on the contents of a map[string]string.
Package mapfs file provides an implementation of the FileSystem interface based on the contents of a map[string]string.
src/golang.org/x/tools/godoc/vfs/zipfs
Package zipfs file provides an implementation of the FileSystem interface based on the contents of a .zip file.
Package zipfs file provides an implementation of the FileSystem interface based on the contents of a .zip file.
src/golang.org/x/tools/imports
Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.
Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.
src/golang.org/x/tools/playground
Package playground registers HTTP handlers at "/compile" and "/share" that proxy requests to the golang.org playground service.
Package playground registers HTTP handlers at "/compile" and "/share" that proxy requests to the golang.org playground service.
src/golang.org/x/tools/playground/socket
Package socket implements an WebSocket-based playground backend.
Package socket implements an WebSocket-based playground backend.
src/golang.org/x/tools/present
The present file format
The present file format
src/golang.org/x/tools/refactor/eg
Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.
Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.
src/golang.org/x/tools/refactor/importgraph
Package importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.
Package importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.
src/golang.org/x/tools/refactor/rename
Package rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename.
Package rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename.
src/golang.org/x/tools/refactor/satisfy
Package satisfy inspects the type-checked ASTs of Go packages and reports the set of discovered type constraints of the form (lhs, rhs Type) where lhs is a non-trivial interface, rhs satisfies this interface, and this fact is necessary for the package to be well-typed.
Package satisfy inspects the type-checked ASTs of Go packages and reports the set of discovered type constraints of the form (lhs, rhs Type) where lhs is a non-trivial interface, rhs satisfies this interface, and this fact is necessary for the package to be well-typed.
src/myitcv.io/gogenerate
Package gogenerate exposes some of the unexported internals of the go generate command as a convenience for the authors of go generate generators.
Package gogenerate exposes some of the unexported internals of the go generate command as a convenience for the authors of go generate generators.
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