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.
das
- a Dictionary for Any String | | lint |dot
- a tree of named anythings | | lintdotpath
- 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) | | lintfs
- a type safe alternative to direct use ofpath/filepath
| | lintfscache
- a cache for file data for any*fs.FsFile
| | lintlru
- a concurrency-safe LRU cache - as found in "golang.org\x\build\internal\lru" | | lintsvp
- a String Value Pair (aka Named Constant) | | linttag
- a Tag (= a String Value Pair (aka Named Constant)) | | linttag/ami
- a drop-in enhancement for atag
: adding introspective methods fromdo/ami
| | linttagmap
- a Tag Map (= a dictionary of String Value Pair s (asmap
) | | lint
list
- an extension of the standardcontainer/list
package | | lintlsb
- a Lazy String Buffer - a gem hidden inpath/path.go
- chapeaux to Rob Pike | | lintsync
- a drop-in replacement for standardsync
with empty/no-op equivalents (used e.g. inoneway/lsm
) | | lint
drum
- a simple beat-counterccsafe/drum
| | lintoneway/drum
| | lint
lsm
- a Lazy String Mapccsafe/lsm
| | lintoneway/lsm
| | lint
stack
- a simple stack for anything; not typesafe; just: it's pattern is used typesafe elsewhere. You may like to do same.ccsafe/stack
| | lintoneway/stack
| | lint
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 ;-)
Hey dude! Help me out for a couple of 🍻!