operations tier

operations-drive-health

Hard drive lifecycle enums: physical state, SMART status, wipe status, disposition, and tag derivation

Hard drive lifecycle enums: physical state, SMART status, wipe status, disposition, and tag derivation

Tieroperations
Roleunclassified (baselined)
Pathcrates/operations/drive-health
Edition2021
Targetsoperations_drive_health
Public items30 across 0 modules
Tests83

What it is for

Hard Drive Health & Lifecycle Library crates

Strongly-typed enums for drive physical state, SMART diagnostic status, wipe status/method, and commercial disposition. Shared between rust-inventory-ai (inventory management) and bootusb (drive test station).

This crate contains only models and pure functions — no I/O, no database access.

Capabilities

crate root

Hard Drive Health & Lifecycle Library crates

Item
fn classify_media(smart : & SmartSummary) -> MediaVerdict
fn derive_tags(disposition : & Disposition, wipe : & WipeStatus, manufacturer : & str,) -> Vec <String>

Disposition

Hard Drive Health & Lifecycle Library crates

Item
pub enum Disposition
Disposition :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
fn derive_disposition(physical : & PhysicalState, smart : & SmartStatus, wipe : & WipeStatus,) -> Disposition
fn derive_disposition_from_verdict(verdict : & MediaVerdict, wipe : & WipeStatus) -> Disposition

DriveFormFactor

Hard Drive Health & Lifecycle Library crates

Item
pub enum DriveFormFactor

MediaVerdict

Hard Drive Health & Lifecycle Library crates

Item
pub enum MediaVerdict
MediaVerdict :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result

ParseDriveEnumError

Hard Drive Health & Lifecycle Library crates

Item
pub struct ParseDriveEnumError
ParseDriveEnumError :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result

PhysicalState

Hard Drive Health & Lifecycle Library crates

Item
pub enum PhysicalState
PhysicalState :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
PhysicalState :: fn from_str(s : & str) -> Result <Self, Self::Err>

ScsiFields

Hard Drive Health & Lifecycle Library crates

Item
pub struct ScsiFields

SmartStatus

Hard Drive Health & Lifecycle Library crates

Item
pub enum SmartStatus
SmartStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
SmartStatus :: fn from_str(s : & str) -> Result <Self, Self::Err>

SmartSummary

Hard Drive Health & Lifecycle Library crates

Item
pub struct SmartSummary
fn extract_smart_summary(snapshot : & serde_json::Value) -> SmartSummary
fn parse_scsi_smartctl_text(stdout : & str) -> SmartSummary

Transport

Hard Drive Health & Lifecycle Library crates

Item
pub enum Transport

TransportStatus

Hard Drive Health & Lifecycle Library crates

Item
pub enum TransportStatus
TransportStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result

WipeMethod

Hard Drive Health & Lifecycle Library crates

Item
pub enum WipeMethod
WipeMethod :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
WipeMethod :: fn from_str(s : & str) -> Result <Self, Self::Err>

WipeStatus

Hard Drive Health & Lifecycle Library crates

Item
pub enum WipeStatus
WipeStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
WipeStatus :: fn from_str(s : & str) -> Result <Self, Self::Err>

How to use it

No examples/ target and no doctest in this crate's rustdoc. The tests listed under Verification are the closest executable usage.

Module structure

No public modules: the crate root is its whole surface.

Public surface

`crate root`

ItemWhat it is
pub enum PhysicalStateObservable physical behavior of a hard drive
PhysicalState :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
PhysicalState :: fn from_str(s : & str) -> Result <Self, Self::Err>
pub enum SmartStatusSMART diagnostic test overall result
SmartStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
SmartStatus :: fn from_str(s : & str) -> Result <Self, Self::Err>
pub enum WipeStatus
WipeStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
WipeStatus :: fn from_str(s : & str) -> Result <Self, Self::Err>
pub enum WipeMethod
WipeMethod :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
WipeMethod :: fn from_str(s : & str) -> Result <Self, Self::Err>
pub enum TransportDrive transport / protocol family
pub struct ScsiFieldsSCSI log-page attributes used for media health classification
pub struct SmartSummarySubset of SMART attributes used for media health classification
pub enum DriveFormFactorDrive form factor — affects read speed thresholds.
pub enum MediaVerdictGraded media health verdict derived from SMART attributes.
MediaVerdict :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
fn classify_media(smart : & SmartSummary) -> MediaVerdictClassify media health from SMART attributes and performance data
pub enum TransportStatusHost-side transport health, independent of media health
TransportStatus :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
pub enum DispositionWhat should happen to this drive, derived from health + wipe state.
Disposition :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result
fn derive_disposition(physical : & PhysicalState, smart : & SmartStatus, wipe : & WipeStatus,) -> DispositionDerive the commercial disposition from observable drive state
fn derive_tags(disposition : & Disposition, wipe : & WipeStatus, manufacturer : & str,) -> Vec <String>Derive inventory tags from disposition, wipe status, and manufacturer
fn derive_disposition_from_verdict(verdict : & MediaVerdict, wipe : & WipeStatus) -> DispositionDerive disposition using graded SMART verdict instead of simple pass/fail
fn extract_smart_summary(snapshot : & serde_json::Value) -> SmartSummaryExtract a SmartSummary from the full smartctl JSON snapshot
fn parse_scsi_smartctl_text(stdout : & str) -> SmartSummaryParse smartctl -a -d cciss,N /dev/cciss/c0d0 text output (smartmontools 6.x) into a typed SmartSummary with transport = Transport::Scsi
pub struct ParseDriveEnumError
ParseDriveEnumError :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result

No pub use re-exports: every item above is declared in this crate.

Boundary

Depends on no other workspace tier.

Shares tier operations with 40 other crates: operations-approval-workflow, operations-assessments, operations-block-imaging, operations-boot-media, operations-browser-agent-worker, operations-camera-discovery, operations-camera-liveview, operations-camera-registry, … (40 total).

_What this crate deliberately does NOT own is a judgment. No committed registry records one for it, so none is stated here._

Where it sits

Tier (ontology)operations
Architectural role (taxonomy)unclassified (baselined)
Locationcrates/operations/drive-health
Vocabulary in force (lexicon)current

Dependencies

Runtime, from outside the workspace.

CrateRequirementFeaturesOptionalOnly on
serde^1derivenoalways
serde_json^1noalways

Development, from outside the workspace.

CrateRequirementFeaturesOptionalOnly on
serde_json^1noalways

Build. None.

Depended on by. 2 workspace crates.

Signal flow — what reaches this crate, and what it reaches.

flowchart LR
  n_application_drive_health["application-drive-health"] -->|uses| SELF
  n_operations_host_inventory["operations-host-inventory"] -->|uses| SELF
  SELF["operations-drive-health"]
  classDef self fill:#1f883d,stroke:#1f883d,color:#fff;
  class SELF self;

Feature flags

No Cargo features are defined: every capability is unconditional, so no consumer can receive a half-wired crate.

Targets

KindNameSource
liboperations_drive_health`src/lib.rs`

Error model

Error typeNamed by
ParseDriveEnumErrordeclared, no public signature returns it

Operational characteristics

PropertyEvidence
async public surfacenone detected
async runtimenone detected
database accessnone detected
network I/Onone detected
unsafe codenone detected
environment variablesnone detected

No unsafe block, unsafe fn, unsafe impl or unsafe trait was found by the parser anywhere in this crate's source.

Configuration

No environment variable is read with a literal name anywhere in this crate. A variable whose key is computed at run time cannot be listed here, and is not claimed to be absent.

2 workspace crates depend on this one: application-drive-health, operations-host-inventory.

Verification

KindCount
Unit tests83
Integration tests0
Examples0
Doctests0

Evidence by module. How often each public module is named by something executable.

ModuleTestsExamplesConsumers
crate root1804

What the tests establish, by name:

Documentation coverage

MeasureDocumentedTotal
Public items with rustdoc1530
Public modules with a //! block00
pie showData
    title Public items with rustdoc
    "Documented" : 15
    "No rustdoc detected" : 15

Metrics

MetricValue
Rust source files1
Source lines1979
Code lines1410
Public API items30
Public modules0
Tests83
Examples0
Cargo features0
Direct runtime dependencies2
Workspace reverse dependencies2
pie showData
    title Public API by kind
    "enum" : 9
    "function" : 6
    "method" : 12
    "struct" : 3
pie showData
    title Rust source composition
    "Code" : 1410
    "Blank or comment" : 569

Generation

Rendered by tools-corpus corpus readme from repository evidence alone, renderer schema 2, lexicon current. No model, network service or database was consulted. Regenerate with tools-corpus corpus readme --write; verify with --check.

All operations · Manual