use super::{
BuiltinSignature, Param, Ty, TY_ANY, TY_DICT, TY_DICT_OR_NIL, TY_LIST, TY_NIL, TY_STRING,
TY_STRING_OR_NIL,
};
pub(crate) const SIGNATURES: &[BuiltinSignature] = &[
BuiltinSignature::simple(
"checkpoint",
&[Param::new("key", TY_STRING), Param::new("value", TY_ANY)],
TY_NIL,
),
BuiltinSignature::simple("checkpoint_clear", &[], TY_NIL),
BuiltinSignature::simple("checkpoint_delete", &[Param::new("key", TY_STRING)], TY_NIL),
BuiltinSignature::simple(
"checkpoint_exists",
&[Param::new("key", TY_STRING)],
Ty::Named("bool"),
),
BuiltinSignature::simple("checkpoint_get", &[Param::new("key", TY_STRING)], TY_ANY),
BuiltinSignature::simple("checkpoint_list", &[], TY_LIST),
BuiltinSignature::simple(
"compute_content_hash",
&[Param::new("dir", TY_STRING)],
TY_STRING,
),
BuiltinSignature::variadic(
"invalidate_facts",
&[Param::optional("dir", TY_STRING)],
TY_NIL,
),
BuiltinSignature::simple(
"metadata_entries",
&[Param::optional("namespace", TY_STRING_OR_NIL)],
TY_LIST,
),
BuiltinSignature::simple(
"metadata_get",
&[
Param::new("dir", TY_STRING),
Param::optional("namespace", TY_STRING_OR_NIL),
],
TY_DICT_OR_NIL,
),
BuiltinSignature::simple("metadata_refresh_hashes", &[], TY_NIL),
BuiltinSignature::simple(
"metadata_resolve",
&[
Param::new("dir", TY_STRING),
Param::optional("namespace", TY_STRING_OR_NIL),
],
TY_DICT_OR_NIL,
),
BuiltinSignature::simple("metadata_save", &[], TY_NIL),
BuiltinSignature::simple(
"metadata_set",
&[
Param::new("dir", TY_STRING),
Param::new("namespace", TY_STRING),
Param::new("data", TY_DICT),
],
TY_NIL,
),
BuiltinSignature::simple(
"metadata_stale",
&[Param::optional("project", TY_STRING)],
TY_DICT,
),
BuiltinSignature::simple(
"metadata_status",
&[Param::optional("namespace", TY_STRING_OR_NIL)],
TY_DICT,
),
BuiltinSignature::simple("project_catalog_native", &[], TY_LIST),
BuiltinSignature::simple(
"project_enrich_native",
&[
Param::optional("path", TY_STRING),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"project_fingerprint",
&[Param::optional("path", TY_STRING)],
TY_DICT,
),
BuiltinSignature::simple("project_root", &[], TY_STRING_OR_NIL),
BuiltinSignature::simple(
"project_scan_native",
&[
Param::optional("path", TY_STRING),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"project_scan_tree_native",
&[
Param::optional("path", TY_STRING),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_DICT,
),
BuiltinSignature::simple(
"project_walk_tree_native",
&[
Param::optional("path", TY_STRING),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_LIST,
),
BuiltinSignature::simple(
"scan_directory",
&[
Param::optional("path", TY_STRING),
Param::optional(
"pattern_or_options",
Ty::Union(&[TY_STRING, TY_DICT, TY_NIL]),
),
Param::optional("options", TY_DICT_OR_NIL),
],
TY_LIST,
),
BuiltinSignature::simple("store_clear", &[], TY_NIL),
BuiltinSignature::simple("store_delete", &[Param::new("key", TY_STRING)], TY_NIL),
BuiltinSignature::simple("store_get", &[Param::new("key", TY_STRING)], TY_ANY),
BuiltinSignature::simple("store_list", &[], TY_LIST),
BuiltinSignature::simple("store_save", &[], TY_NIL),
BuiltinSignature::simple(
"store_set",
&[Param::new("key", TY_STRING), Param::new("value", TY_ANY)],
TY_NIL,
),
];