Skip to main content
Glama
toolchain.bzl2.24 kB
SiRustToolchainInfo = provider( fields = { "clippy_output": typing.Any, "crate_context": typing.Any, "rustfmt_check": typing.Any, "rustfmt_path": typing.Any, "rustfmt_toml": provider_field(typing.Any, default = None), }, ) def si_rust_toolchain_impl(ctx) -> list[[DefaultInfo, SiRustToolchainInfo]]: """ An extended Rust toolchain. """ if ctx.attrs.rustfmt_toml: rustfmt_toml = ctx.attrs.rustfmt_toml[DefaultInfo].default_outputs[0] else: rustfmt_toml = None # Build rustfmt path from rustfmt distribution (if provided) or fall back to rust distribution if ctx.attrs.rustfmt_dist: rustfmt_dist_dir = ctx.attrs.rustfmt_dist[DefaultInfo].default_outputs[0] rustfmt_path = cmd_args(rustfmt_dist_dir, "/toolchain/bin/rustfmt", delimiter="") elif ctx.attrs.rust_dist: rust_dist_dir = ctx.attrs.rust_dist[DefaultInfo].default_outputs[0] rustfmt_path = cmd_args(rust_dist_dir, "/toolchain/bin/rustfmt", delimiter="") else: rustfmt_path = cmd_args("rustfmt") return [ DefaultInfo(), SiRustToolchainInfo( clippy_output = ctx.attrs._clippy_output, crate_context = ctx.attrs._crate_context, rustfmt_check = ctx.attrs._rustfmt_check, rustfmt_path = rustfmt_path, rustfmt_toml = rustfmt_toml, ), ] si_rust_toolchain = rule( impl = si_rust_toolchain_impl, attrs = { "rustfmt_toml": attrs.option( attrs.dep(providers = [DefaultInfo]), default = None, ), "rust_dist": attrs.option( attrs.exec_dep(providers = [DefaultInfo]), default = None, ), "rustfmt_dist": attrs.option( attrs.exec_dep(providers = [DefaultInfo]), default = None, ), "_clippy_output": attrs.dep( default = "prelude-si//rust:clippy_output.py", ), "_crate_context": attrs.dep( default = "prelude-si//rust:crate_context.py", ), "_rustfmt_check": attrs.dep( default = "prelude-si//rust:rustfmt_check.py", ), }, is_toolchain_rule = True, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server