for now prefer openTrapdoor

until I know for sure the structures won't change, then we can optimise
This commit is contained in:
Emile Clark-Boman 2026-01-24 23:48:33 +10:00
parent 7247a8e9af
commit 886f7181ac

View file

@ -11,33 +11,33 @@
(this) (this)
enfIsNT enfIsNT
ntTrapdoorKey ntTrapdoorKey
openTrapdoorFn openTrapdoor
toTypeSig toTypeSig
; ;
in rec { in rec {
# check if a value is an nt type/class # check if a value is an nt type/class
isNT = T: let isNT = T: let
content = openTrapdoorFn ntTrapdoorKey T; content = openTrapdoor ntTrapdoorKey T;
names = attrNames content; names = attrNames content;
in in
isAttrs content isAttrs content
&& all (name: elem name names) ["sig" "derive" "ops" "req"]; && all (name: elem name names) ["sig" "derive" "ops" "req"];
isNixClass = T: let isNixClass = T: let
content = openTrapdoorFn ntTrapdoorKey T; content = openTrapdoor ntTrapdoorKey T;
in in
isAttrs content isAttrs content
&& attrNames content == ["sig" "derive" "ops" "req"]; && attrNames content == ["sig" "derive" "ops" "req"];
isNixType = T: let isNixType = T: let
content = openTrapdoorFn ntTrapdoorKey T; content = openTrapdoor ntTrapdoorKey T;
in in
isAttrs content isAttrs content
&& attrNames content == ["instance" "sig" "derive" "ops" "req"] && attrNames content == ["instance" "sig" "derive" "ops" "req"]
&& content.instance == false; && content.instance == false;
isNixTypeInstance = T: let isNixTypeInstance = T: let
content = openTrapdoorFn ntTrapdoorKey T; content = openTrapdoor ntTrapdoorKey T;
in in
isAttrs content isAttrs content
&& attrNames content == ["instance" "sig" "derive" "ops" "req"] && attrNames content == ["instance" "sig" "derive" "ops" "req"]