sc-lint-attributes 0.2.0

Source-level declarative attributes for sc-lint analyzers.
Documentation

sc-lint-attributes

sc-lint-attributes is the proc-macro crate that provides the #[sc_lint(...)] attribute namespace used by analyzer-owned source declarations.

Purpose

Use this crate when Rust source needs compile-valid sc_lint attributes for policy declarations that analyzers later inspect, such as:

  • #[sc_lint(boundary.internal_only)]
  • #[sc_lint(boundary.forbid_external_impls)]
  • approved boundary.allow(...) cycle suppressors

The crate stays intentionally thin: it provides the attribute namespace and syntax acceptance while the analyzers own semantic enforcement.

Key Types

This crate is a proc-macro surface rather than a deep domain model. Its role is to:

  • expose the #[sc_lint(...)] attribute entry point
  • delegate syntax understanding to sc-lint-directives
  • preserve stable source-level attribute usage across analyzer evolution

Usage

In a consumer crate:

sc-lint-attributes = { version = "0.1.0", path = "../sc-lint-attributes" }

Example source:

#[sc_lint(boundary.internal_only)]
pub(crate) struct Token;

Further Reading