cli

Command-line interface for Radroots
git clone https://radroots.dev/git/cli.git
Log | Files | Refs | README | LICENSE

package_boundary.rs (2262B)


      1 #![forbid(unsafe_code)]
      2 
      3 const ROOT: &str = include_str!("../src/lib.rs");
      4 const CLI_ROOT: &str = include_str!("../src/cli/mod.rs");
      5 const PUBLIC_API: &str = include_str!("../contracts/api_baselines/radroots_cli.txt");
      6 const FLAKE: &str = include_str!("../flake.nix");
      7 
      8 #[test]
      9 fn implementation_modules_are_private_and_api_is_root_only() {
     10     assert!(ROOT.contains("mod cli;"));
     11     assert!(!ROOT.contains("pub mod cli;"));
     12     assert!(!ROOT.contains("pub use cli::*;"));
     13     assert!(!CLI_ROOT.contains("::*;"));
     14     for implementation in [
     15         "account",
     16         "basket",
     17         "diagnostics",
     18         "farm",
     19         "health",
     20         "listing",
     21         "market",
     22         "profile",
     23         "signer",
     24         "store",
     25         "sync",
     26         "trade",
     27         "transport",
     28         "validation",
     29     ] {
     30         assert!(!PUBLIC_API.contains(&format!("radroots_cli::{implementation}::")));
     31     }
     32     for required in [
     33         "pub struct radroots_cli::TargetCliArgs",
     34         "pub enum radroots_cli::TargetCommand",
     35         "pub enum radroots_cli::TargetOutputFormat",
     36     ] {
     37         assert!(PUBLIC_API.contains(required), "missing {required}");
     38     }
     39     for dependency in ["clap::", "radroots::", "serde_json::"] {
     40         assert!(!PUBLIC_API.contains(dependency), "leaked {dependency}");
     41     }
     42 }
     43 
     44 #[test]
     45 fn nix_outputs_are_real_owned_and_exactly_bounded() {
     46     for required in [
     47         "github:radrootslabs/lib/3563f3b5a4331eb2cb3f925cafc9de524d844228",
     48         "\"aarch64-darwin\"",
     49         "\"x86_64-linux\"",
     50         "craneLib.buildPackage",
     51         "craneLib.mkCargoDerivation",
     52         "program = \"${package}/bin/radroots\"",
     53         "default = (cliOutputs system).package",
     54         "default = (cliOutputs system).check",
     55         "default = (cliOutputs system).app",
     56     ] {
     57         assert!(
     58             FLAKE.contains(required),
     59             "missing governed Nix source: {required}"
     60         );
     61     }
     62     for forbidden in [
     63         "writeShellApplication",
     64         "git rev-parse",
     65         "repo_root",
     66         "devShells",
     67         "nixosModules",
     68         "aarch64-linux",
     69         "x86_64-darwin",
     70     ] {
     71         assert!(
     72             !FLAKE.contains(forbidden),
     73             "forbidden Nix surface is present: {forbidden}"
     74         );
     75     }
     76 }