This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func subsets[T any](v []T) [][]T { | |
switch len(v) { | |
case 0: | |
return [][]T{ | |
{}, | |
} | |
case 1: | |
return [][]T{ | |
{v[0]}, | |
{}, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func permute[T any](v []T) [][]T { | |
switch len(v) { | |
case 0: | |
return [][]T{ | |
{}, | |
} | |
case 1: | |
return [][]T{ | |
{v[0]}, | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package nuke | |
import "sync" | |
type Nuclear[T any] struct { | |
mu sync.RWMutex | |
v T | |
} | |
func (n *Nuclear[T]) Store(v T) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package once | |
import "sync" | |
type Once[T any] struct { | |
sync.Mutex | |
has bool | |
v T | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package withcloser | |
import "io" | |
type reader struct { | |
io.Reader | |
close func() error | |
} | |
func (r reader) Close() error { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -eu -o pipefail | |
# This script ensures source code files | |
# have copyright license headers. | |
# | |
# It modifies all source files in place | |
# and avoids adding a license header | |
# to any file that already has one. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package seen | |
type Seen[T comparable] struct { | |
Map map[T]struct{} | |
} | |
func New[T comparable](size int) Seen[T] { | |
return Seen[T]{ | |
Map: make(map[T]struct{}, size), | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func RandomBytes(length int) []byte { | |
const charset = "abcdefghijklmnopqrstuvwxyz" + | |
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\t\n " | |
b := make([]byte, length) | |
for i := range b { | |
b[i] = charset[rand.Intn(len(charset))] | |
} | |
return b | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package rndstr | |
import ( | |
"crypto/rand" | |
"encoding/base64" | |
) | |
func RndStr(n int) (string, error) { | |
rnd := make([]byte, n + 10) | |
_, err := rand.Read(rnd) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# like surfraw, but not a million fucking lines long. | |
# requires dmenu. | |
# the default search engine is shown at first. | |
# to select another search engine, press enter when | |
# the prompt is empty in dmenu. | |
# name of the default search engine | |
default='Searx' |
NewerOlder