stl

module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: May 1, 2022 License: BSD-3-Clause

README

Standard library for Golang (extended)

GitHub Workflow Status License GitHub issues GitHub issues The latest release version GoDoc

This package contains the library extension and simplification I always missed and could not fill the gap in my every day development. This repository has been created right after Go 1.18 release with the generics support. It was the main problem to build the simple library with good performance. This package wont try to replace the standard library, but it will try to extend and simplify it.

Goals

There are the main goals of this library:

  • Implement and tests the most common functions and structures of the standard library
  • The simplicity and generalization should not affect performance
  • The library should be easy to use and understand

Documentation

To make documentation more standartized and always up-to-date, we use GoDoc (pkg.go.dev/github.com/aohorodnyk/stl). It is the best documentation tool for Go.

Every feature or feature change should introduce some changes in comments, doc.go, README.md and tests include examples.

Contributing

The library is open source and you can contribute to it.

Before contrbution, make sure that githook is configured for you and all your commits contain the correct issue tag.

Branch Name

Before you start the contribution, make sure that you are on the correct branch. Branch name should start from the issue number dash and short explanation with spaces replaced by underscores. Example:

  • 1-my_feature
  • 2-fix_bug
  • 234-my_important_pr
Git Hook

To configure the git hook, you need to simply run the command: git config core.hooksPath .githooks

It will configure the git hook to run the pre-commit script. Source code of the hook is in .githooks/prepare-commit-msg.

This git-hook will parse branch name and add the issue tag to the commit message.

Directories

Path Synopsis
List of collections that implement the main basic data structures.
List of collections that implement the main basic data structures.
cache
List of cache collections that implement cache interface.
List of cache collections that implement cache interface.
cache/lru
LRU algorithm is a cache replacement algorithm.
LRU algorithm is a cache replacement algorithm.
linkedlist
linkedlist package contains a linked list data structure implementation.
linkedlist package contains a linked list data structure implementation.
queue
This package contains FIFO (first in, first out) queue implementation.
This package contains FIFO (first in, first out) queue implementation.
stack
This package contains LIFO (last in, first out) stack implementation.
This package contains LIFO (last in, first out) stack implementation.
Package math provides basic constants and mathematical functions.
Package math provides basic constants and mathematical functions.
reflect package provides additional functionality for the standard Go reflect package.
reflect package provides additional functionality for the standard Go reflect package.
Sort package provides simplified interfaces to sort functions with various types.
Sort package provides simplified interfaces to sort functions with various types.
Package types defines a set of useful types to be used with type parameters.
Package types defines a set of useful types to be used with type parameters.

Jump to

Keyboard shortcuts

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