nxricelib
This commit is contained in:
64
nxlib/ricelib.nix
Normal file
64
nxlib/ricelib.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{ lib, ... }:
|
||||
rec
|
||||
{
|
||||
nohash = s: builtins.substring 1 7 s;
|
||||
|
||||
slice-hex = hex: { r = builtins.substring 0 2 hex; g = builtins.substring 2 2 hex; b = builtins.substring 4 5 hex; };
|
||||
|
||||
# https://github.com/bertof/nix-rice
|
||||
rune-to-num = c:
|
||||
let
|
||||
k = lib.strings.toUpper c;
|
||||
dict = {
|
||||
"0" = 0;
|
||||
"1" = 1;
|
||||
"2" = 2;
|
||||
"3" = 3;
|
||||
"4" = 4;
|
||||
"5" = 5;
|
||||
"6" = 6;
|
||||
"7" = 7;
|
||||
"8" = 8;
|
||||
"9" = 9;
|
||||
"A" = 10;
|
||||
"B" = 11;
|
||||
"C" = 12;
|
||||
"D" = 13;
|
||||
"E" = 14;
|
||||
"F" = 15;
|
||||
};
|
||||
in
|
||||
assert(builtins.hasAttr k dict);
|
||||
builtins.getAttr k dict;
|
||||
|
||||
drune-to-255 = hex: (rune-to-num (builtins.substring 0 1 hex)) * 15 + (rune-to-num (builtins.substring 1 2 hex));
|
||||
|
||||
hex-to-rgb-comma-string = hex: let color = (slice-hex (nohash hex)); in "${builtins.toString (drune-to-255 color.r)},${builtins.toString (drune-to-255 color.g)},${builtins.toString (drune-to-255 color.b)}";
|
||||
|
||||
num-to-rune = n:
|
||||
let
|
||||
ns = builtins.toString n;
|
||||
dict = {
|
||||
"0" = "0";
|
||||
"1" = "1";
|
||||
"2" = "2";
|
||||
"3" = "3";
|
||||
"4" = "4";
|
||||
"5" = "5";
|
||||
"6" = "6";
|
||||
"7" = "7";
|
||||
"8" = "8";
|
||||
"9" = "9";
|
||||
"10" = "A";
|
||||
"11" = "B";
|
||||
"12" = "C";
|
||||
"13" = "D";
|
||||
"14" = "E";
|
||||
"15" = "F";
|
||||
};
|
||||
in
|
||||
assert(builtins.hasAttr ns dict);
|
||||
builtins.getAttr ns dict;
|
||||
|
||||
float-to-drune = f: "${num-to-rune (builtins.floor((255*f) / 16))}${num-to-rune (builtins.floor(255*f) - (builtins.floor((255 * f) / 16) * 16))}";
|
||||
}
|
||||
Reference in New Issue
Block a user