Skip to main content

aidens_profile_research/
lib.rs

1//! Research-workbench profile status.
2//!
3//! This crate is a deferred/example-only surface. It must not be presented as a
4//! completed research product profile without executable receipts and profile tests.
5
6pub const PROFILE_ID: &str = "research-workbench";
7pub const SUPPORT_TIER: &str = "deferred/example-only";
8pub const NON_GOAL: &str = "not a completed research product surface";
9
10#[derive(Debug, Clone, PartialEq, Eq)]
11pub struct ProfileResearchStatus {
12    pub enabled: bool,
13    pub note: String,
14}
15
16impl Default for ProfileResearchStatus {
17    fn default() -> Self {
18        Self {
19            enabled: false,
20            note: format!("{PROFILE_ID}: {SUPPORT_TIER}; {NON_GOAL}"),
21        }
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn research_profile_is_not_marked_product_ready() {
31        let status = ProfileResearchStatus::default();
32        assert!(!status.enabled);
33        assert!(status.note.contains(SUPPORT_TIER));
34        assert!(status
35            .note
36            .contains("not a completed research product surface"));
37    }
38}