import sys
import yaml
def main() -> None:
if len(sys.argv) != 2:
sys.exit(__doc__)
with open(sys.argv[1]) as f:
languages = yaml.safe_load(f)
extensions: set[str] = set()
for props in languages.values():
for ext in props.get("extensions", []):
extensions.add(ext.lstrip(".").lower())
print(f"// {len(extensions)} distinct extensions")
print("pub static KNOWN_EXTENSIONS: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {")
print(" let mut s = HashSet::new();")
for ext in sorted(extensions):
print(f' s.insert("{ext}");')
print(" s")
print("});")
print(f"{len(extensions)} extensions", file=sys.stderr)
if __name__ == "__main__":
main()