Coverage for lintro / utils / environment / rust_info.py: 80%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-04-03 18:53 +0000

1"""Rust runtime information.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass 

6 

7 

8@dataclass 

9class RustInfo: 

10 """Rust runtime information.""" 

11 

12 rustc_version: str | None 

13 cargo_version: str | None 

14 rustfmt_version: str | None 

15 clippy_version: str | None 

16 

17 @property 

18 def section_title(self) -> str: 

19 """Return the section title for display.""" 

20 return "Rust" 

21 

22 def to_display_rows(self) -> list[tuple[str, str]]: 

23 """Return label-value pairs for rendering.""" 

24 return [ 

25 ("rustc", self.rustc_version or "(unknown)"), 

26 ("cargo", self.cargo_version or "(unknown)"), 

27 ("rustfmt", self.rustfmt_version or "(not found)"), 

28 ("clippy", self.clippy_version or "(not found)"), 

29 ] 

30 

31 def is_available(self) -> bool: 

32 """Return whether this section has data to display.""" 

33 return self.rustc_version is not None or self.cargo_version is not None