container

package module
v0.0.0-...-4b9bf86 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2020 License: MIT Imports: 0 Imported by: 0

README

Don't show me Your code - show me Your data!

Software License Go Report Card Build Status GoDoc

Any container is either

  • safe for concurrent processing (short: ccsafe)
  • or not.

Note: Not being safe for concurrent processing has been normal for a looong time. Just: normal is not a good, meaningful name. Neither is oldway - another discarded idea.

Thus: we came up with oneway - as there is only one way to use it safely: single threaded - not concurrent.


only ccsafe/ implementation

  • das - a Dictionary for Any String | GoDoc | lint |
  • dot - a tree of named anythings | GoDoc | lint
  • dotpath - a parser for user-provided strings to be understood as a (list of) path with special awareness of triple dots (to recourse) and of trailing double dots (to inspect) | GoDoc | lint
  • fs - a type safe alternative to direct use of path/filepath | GoDoc | lint
  • fscache - a cache for file data for any *fs.FsFile | GoDoc | lint
  • lru - a concurrency-safe LRU cache - as found in "golang.org\x\build\internal\lru" | GoDoc | lint
  • svp - a String Value Pair (aka Named Constant) | GoDoc | lint
  • tag - a Tag (= a String Value Pair (aka Named Constant)) | GoDoc | lint
  • tag/ami - a drop-in enhancement for a tag: adding introspective methods from do/ami | GoDoc | lint
  • tagmap - a Tag Map (= a dictionary of String Value Pair s (as map) | GoDoc | lint

only oneway/ implementation

both ccsafe/ & oneway/ implementations


Remarks

Note: Some kinds may deserve to be implemented both ways, as the ccsafe version is usually less performant.

Note: Some kinds are safe for concurrent processing by construction. Notably immutable things.


Your suggestions, remarks, questions and/or contributions are welcome ;-)


Think deep - code happy - be simple - see clear :-)


Support on Beerpay

Hey dude! Help me out for a couple of 🍻!

Beerpay Beerpay

Documentation

Overview

Package container provides two subdirectories with 'normal' and concurrncy-safe 'ccsafe' containers

Directories

Path Synopsis
ccsafe
das
Package das provides a Dictionary by Anything for Strings
Package das provides a Dictionary by Anything for Strings
dot
Package dot implements a container of named stringmaps.
Package dot implements a container of named stringmaps.
dotpath
Package dotpath is all about Pathinking - Path..think.ing - Path.ink.ing - Pa.think.ing - Pa.thin.king ...
Package dotpath is all about Pathinking - Path..think.ing - Path.ink.ing - Pa.think.ing - Pa.thin.king ...
drum
Package drum provides a simple counter (with names based on musical methaphores)
Package drum provides a simple counter (with names based on musical methaphores)
fileinfocache
Package fic represents an os.FileInfo based cache of file data
Package fic represents an os.FileInfo based cache of file data
fs
Package fs represents the constituents of a file system and provides type safe access.
Package fs represents the constituents of a file system and provides type safe access.
fscache
Package fscache represents a file data cache based on an FsInfo
Package fscache represents a file data cache based on an FsInfo
lru
Package lru implements an LRU cache.
Package lru implements an LRU cache.
lsm
Package lsm provides a Lazy String Map - a named-anything map with lazy access to sorted content
Package lsm provides a Lazy String Map - a named-anything map with lazy access to sorted content
stack
Package stack provides a concurrency-safe stack for interface{} guarded by a sync.Mutex
Package stack provides a concurrency-safe stack for interface{} guarded by a sync.Mutex
svp
Package svp - StringValuePair - named constants Note: Being immutable implies concurrency safetey.
Package svp - StringValuePair - named constants Note: Being immutable implies concurrency safetey.
tag
Package tag provides a StringValuePair - a named value
Package tag provides a StringValuePair - a named value
tag/ami
Package tag extends "container/.../tag" with the pathfriendly functions from "do/nvp"
Package tag extends "container/.../tag" with the pathfriendly functions from "do/nvp"
oneway
drum
Package drum provides a simple counter (with names based on musical methaphores)
Package drum provides a simple counter (with names based on musical methaphores)
list
Package list implements a doubly linked list.
Package list implements a doubly linked list.
lsb
Package lsb provides a Lazy String Buffer: efficient, and NOT concurrency safe! found in `path/path.go` - chapeaux to Rob Pike Note: I would not mind to see this below "strings" :-)
Package lsb provides a Lazy String Buffer: efficient, and NOT concurrency safe! found in `path/path.go` - chapeaux to Rob Pike Note: I would not mind to see this below "strings" :-)
lsm
Package lsm provides a Lazy String Map - a named-anything map with lazy access to sorted content
Package lsm provides a Lazy String Map - a named-anything map with lazy access to sorted content
stack
Package stack provides a normal (=non-concurrency-safe) stack for anything (interface{}) Note: the very crisp implementation was found in cmd/go/pkg.go importStack
Package stack provides a normal (=non-concurrency-safe) stack for anything (interface{}) Note: the very crisp implementation was found in cmd/go/pkg.go importStack
sync
Package sync provides a no-op drop-in replacement for standard "sync" Let's say: You have a gr8 package.
Package sync provides a no-op drop-in replacement for standard "sync" Let's say: You have a gr8 package.

Jump to

Keyboard shortcuts

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