# Crate `paranoid_core` :::::::{rust:crate} paranoid_core :index: 0 ::: ::: :::{rust:use} paranoid_core :used_name: self ::: :::{rust:use} paranoid_core :used_name: crate ::: :::{rust:use} openssl::rand::rand_bytes :used_name: rand_bytes ::: :::{rust:use} openssl::sha::sha256 :used_name: sha256 ::: :::{rust:use} serde::Deserialize :used_name: Deserialize ::: :::{rust:use} serde::Serialize :used_name: Serialize ::: :::{rust:use} statrs::distribution::ChiSquared :used_name: ChiSquared ::: :::{rust:use} statrs::distribution::ContinuousCDF :used_name: ContinuousCDF ::: :::{rust:use} std::collections::HashSet :used_name: HashSet ::: :::{rust:use} std::fmt :used_name: fmt ::: :::{rust:use} thiserror::Error :used_name: Error ::: :::{rust:use} zeroize::Zeroizing :used_name: Zeroizing ::: :::{rubric} Variables ::: ::::::{rust:variable} paranoid_core::FRAMEWORKS :index: 0 :vis: pub :toc: const FRAMEWORKS :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"FRAMEWORKS"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"["},{"type":"link","value":"ComplianceFramework","target":"ComplianceFramework"},{"type":"punctuation","value":"; "},{"type":"literal","value":"6"},{"type":"punctuation","value":"]"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::MAX_BATCH_SIZE :index: 0 :vis: pub :toc: const MAX_BATCH_SIZE :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"MAX_BATCH_SIZE"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::MAX_CHARSET_LEN :index: 0 :vis: pub :toc: const MAX_CHARSET_LEN :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"MAX_CHARSET_LEN"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::MAX_CONSTRAINED_ATTEMPTS :index: 0 :vis: pub :toc: const MAX_CONSTRAINED_ATTEMPTS :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"MAX_CONSTRAINED_ATTEMPTS"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::MAX_MULTI_COUNT :index: 0 :vis: pub :toc: const MAX_MULTI_COUNT :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"MAX_MULTI_COUNT"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::MAX_PASSWORD_LEN :index: 0 :vis: pub :toc: const MAX_PASSWORD_LEN :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"MAX_PASSWORD_LEN"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:variable} paranoid_core::VERSION :index: 0 :vis: pub :toc: const VERSION :layout: [{"type":"keyword","value":"const"},{"type":"space"},{"type":"name","value":"VERSION"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"}] ::: ::: :::::: :::{rubric} Functions ::: ::::::{rust:function} paranoid_core::check_compliance :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"check_compliance"},{"type":"punctuation","value":"("},{"type":"name","value":"password_length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"total_entropy"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"},{"type":"punctuation","value":", "},{"type":"name","value":"character_counts"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"CharacterCounts","target":"CharacterCounts"},{"type":"punctuation","value":", "},{"type":"name","value":"framework"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ComplianceFramework","target":"ComplianceFramework"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"bool","target":"bool"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::chi_squared :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"chi_squared"},{"type":"punctuation","value":"("},{"type":"name","value":"passwords"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"num_passwords"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"password_length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"("},{"type":"link","value":"f64","target":"f64"},{"type":"punctuation","value":", "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"link","value":"f64","target":"f64"},{"type":"punctuation","value":")"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::combined_framework_requirements :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"combined_framework_requirements"},{"type":"punctuation","value":"("},{"type":"name","value":"selected"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"punctuation","value":"["},{"type":"link","value":"FrameworkId","target":"FrameworkId"},{"type":"punctuation","value":"]"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"CombinedFrameworkRequirements","target":"CombinedFrameworkRequirements"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::count_char_types :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"count_char_types"},{"type":"punctuation","value":"("},{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"CharacterCounts","target":"CharacterCounts"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::count_collisions :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"count_collisions"},{"type":"punctuation","value":"("},{"type":"name","value":"passwords"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"punctuation","value":"["},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":"]"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::execute_request :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"execute_request"},{"type":"punctuation","value":"<"},{"type":"name","value":"F"},{"type":"punctuation","value":">"},{"type":"punctuation","value":"("},{"type":"name","value":"request"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ParanoidRequest","target":"ParanoidRequest"},{"type":"punctuation","value":", "},{"type":"name","value":"run_audit"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"},{"type":"punctuation","value":", "},{"type":"keyword","value":"mut"},{"type":"space"},{"type":"name","value":"on_stage"},{"type":"punctuation","value":": "},{"type":"link","value":"F","target":"F"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"GenerationReport","target":"GenerationReport"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"},{"type":"newline"},{"type":"keyword","value":"where"},{"type":"newline"},{"type":"indent"},{"type":"link","value":"F","target":"F"},{"type":"punctuation","value":": "},{"type":"link","value":"FnMut","target":"FnMut"},{"type":"punctuation","value":"("},{"type":"link","value":"AuditStage","target":"AuditStage"},{"type":"punctuation","value":")"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::framework_by_id :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"framework_by_id"},{"type":"punctuation","value":"("},{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"FrameworkId","target":"FrameworkId"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"ComplianceFramework","target":"ComplianceFramework"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::frameworks :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"frameworks"},{"type":"punctuation","value":"("},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"punctuation","value":"["},{"type":"link","value":"ComplianceFramework","target":"ComplianceFramework"},{"type":"punctuation","value":"]"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::generate_constrained_password :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"generate_constrained_password"},{"type":"punctuation","value":"("},{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"requirements"},{"type":"punctuation","value":": "},{"type":"link","value":"CharRequirements","target":"CharRequirements"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::generate_multiple :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"generate_multiple"},{"type":"punctuation","value":"("},{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"count"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":", "},{"type":"name","value":"requirements"},{"type":"punctuation","value":": "},{"type":"link","value":"CharRequirements","target":"CharRequirements"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::generate_password :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"generate_password"},{"type":"punctuation","value":"("},{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":", "},{"type":"name","value":"length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::pattern_issues :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"pattern_issues"},{"type":"punctuation","value":"("},{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::resolve_charset :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"resolve_charset"},{"type":"punctuation","value":"("},{"type":"name","value":"spec"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::run_audit_summary :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"run_audit_summary"},{"type":"punctuation","value":"<"},{"type":"name","value":"F"},{"type":"punctuation","value":">"},{"type":"punctuation","value":"("},{"type":"name","value":"request"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"ResolvedRequest","target":"ResolvedRequest"},{"type":"punctuation","value":", "},{"type":"name","value":"passwords"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"punctuation","value":"["},{"type":"link","value":"GeneratedPassword","target":"GeneratedPassword"},{"type":"punctuation","value":"]"},{"type":"punctuation","value":", "},{"type":"name","value":"entropy"},{"type":"punctuation","value":": "},{"type":"link","value":"EntropyMetrics","target":"EntropyMetrics"},{"type":"punctuation","value":", "},{"type":"name","value":"on_stage"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"keyword","value":"mut"},{"type":"space"},{"type":"link","value":"F","target":"F"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"AuditSummary","target":"AuditSummary"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"},{"type":"newline"},{"type":"keyword","value":"where"},{"type":"newline"},{"type":"indent"},{"type":"link","value":"F","target":"F"},{"type":"punctuation","value":": "},{"type":"link","value":"FnMut","target":"FnMut"},{"type":"punctuation","value":"("},{"type":"link","value":"AuditStage","target":"AuditStage"},{"type":"punctuation","value":")"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::secure_preview :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"secure_preview"},{"type":"punctuation","value":"("},{"type":"name","value":"password"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"String","target":"String"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::serial_correlation :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"serial_correlation"},{"type":"punctuation","value":"("},{"type":"name","value":"data"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"punctuation","value":"["},{"type":"link","value":"u8","target":"u8"},{"type":"punctuation","value":"]"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"f64","target":"f64"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::sha256_hex :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"sha256_hex"},{"type":"punctuation","value":"("},{"type":"name","value":"input"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_core::validate_charset :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"validate_charset"},{"type":"punctuation","value":"("},{"type":"name","value":"input"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::::: :::{rubric} Enums ::: ::::::{rust:enum} paranoid_core::AuditStage :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"AuditStage"}] ::: ::: :::::{rust:struct} paranoid_core::AuditStage::Generate :index: 2 :vis: pub :toc: Generate :layout: [{"type":"name","value":"Generate"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::ChiSquared :index: 2 :vis: pub :toc: ChiSquared :layout: [{"type":"name","value":"ChiSquared"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::SerialCorrelation :index: 2 :vis: pub :toc: SerialCorrelation :layout: [{"type":"name","value":"SerialCorrelation"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::CollisionDetection :index: 2 :vis: pub :toc: CollisionDetection :layout: [{"type":"name","value":"CollisionDetection"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::EntropyProofs :index: 2 :vis: pub :toc: EntropyProofs :layout: [{"type":"name","value":"EntropyProofs"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::PatternDetection :index: 2 :vis: pub :toc: PatternDetection :layout: [{"type":"name","value":"PatternDetection"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::ThreatAssessment :index: 2 :vis: pub :toc: ThreatAssessment :layout: [{"type":"name","value":"ThreatAssessment"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::AuditStage::Complete :index: 2 :vis: pub :toc: Complete :layout: [{"type":"name","value":"Complete"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::AuditStage :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"AuditStage","target":"AuditStage"}] :toc: impl AuditStage ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::AuditStage::label :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"label"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] ::: ::: :::: ::::: :::::: ::::::{rust:enum} paranoid_core::CharsetSpec :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"CharsetSpec"}] ::: ::: :::::{rust:struct} paranoid_core::CharsetSpec::NamedOrLiteral :index: 2 :vis: pub :toc: NamedOrLiteral :layout: [{"type":"name","value":"NamedOrLiteral"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::CharsetSpec::Options :index: 2 :vis: pub :toc: Options :layout: [{"type":"name","value":"Options"},{"type":"punctuation","value":"("},{"type":"link","value":"CharsetOptions","target":"CharsetOptions"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::CharsetSpec :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"CharsetSpec","target":"CharsetSpec"}] :toc: impl CharsetSpec ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::CharsetSpec::resolve :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"resolve"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"combined"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"CombinedFrameworkRequirements","target":"CombinedFrameworkRequirements"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::: :::{rubric} Traits implemented ::: :::::{rust:impl} paranoid_core::CharsetSpec::Default :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"Default","target":"Default"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"CharsetSpec","target":"CharsetSpec"}] :toc: impl Default for CharsetSpec ::: ::: ::::: :::::: ::::::{rust:enum} paranoid_core::FrameworkId :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"FrameworkId"}] ::: ::: :::::{rust:struct} paranoid_core::FrameworkId::Nist :index: 2 :vis: pub :toc: Nist :layout: [{"type":"name","value":"Nist"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::FrameworkId::PciDss :index: 2 :vis: pub :toc: PciDss :layout: [{"type":"name","value":"PciDss"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::FrameworkId::Hipaa :index: 2 :vis: pub :toc: Hipaa :layout: [{"type":"name","value":"Hipaa"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::FrameworkId::Soc2 :index: 2 :vis: pub :toc: Soc2 :layout: [{"type":"name","value":"Soc2"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::FrameworkId::Gdpr :index: 2 :vis: pub :toc: Gdpr :layout: [{"type":"name","value":"Gdpr"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::FrameworkId::Iso27001 :index: 2 :vis: pub :toc: Iso27001 :layout: [{"type":"name","value":"Iso27001"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::FrameworkId :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"FrameworkId","target":"FrameworkId"}] :toc: impl FrameworkId ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::FrameworkId::as_str :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"as_str"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] ::: ::: :::: ::::{rust:function} paranoid_core::FrameworkId::parse :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"parse"},{"type":"punctuation","value":"("},{"type":"name","value":"input"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"str","target":"str"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"Self","target":"Self"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::: :::{rubric} Traits implemented ::: :::::{rust:impl} paranoid_core::FrameworkId::Display :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"fmt","target":"fmt"},{"type":"punctuation","value":"::"},{"type":"name","value":"Display"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"FrameworkId","target":"FrameworkId"}] :toc: impl Display for FrameworkId ::: ::: ::::: :::::: ::::::{rust:enum} paranoid_core::ParanoidError :index: 1 :vis: pub :layout: [{"type":"keyword","value":"enum"},{"type":"space"},{"type":"name","value":"ParanoidError"}] ::: ::: :::::{rust:struct} paranoid_core::ParanoidError::InvalidArguments :index: 2 :vis: pub :toc: InvalidArguments :layout: [{"type":"name","value":"InvalidArguments"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::ParanoidError::ImpossibleRequirements :index: 2 :vis: pub :toc: ImpossibleRequirements :layout: [{"type":"name","value":"ImpossibleRequirements"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::ParanoidError::RandomFailure :index: 2 :vis: pub :toc: RandomFailure :layout: [{"type":"name","value":"RandomFailure"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::ParanoidError::HashFailure :index: 2 :vis: pub :toc: HashFailure :layout: [{"type":"name","value":"HashFailure"},{"type":"punctuation","value":"("},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":")"}] ::: ::: ::::: :::::{rust:struct} paranoid_core::ParanoidError::ExhaustedAttempts :index: 2 :vis: pub :toc: ExhaustedAttempts :layout: [{"type":"name","value":"ExhaustedAttempts"}] ::: ::: ::::: :::::: :::{rubric} Structs and Unions ::: ::::::{rust:struct} paranoid_core::AuditSummary :index: 1 :vis: pub :toc: struct AuditSummary :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"AuditSummary"}] ::: ::: :::::{rust:variable} paranoid_core::AuditSummary::password_length :index: 2 :vis: pub :toc: password_length :layout: [{"type":"name","value":"password_length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::charset_size :index: 2 :vis: pub :toc: charset_size :layout: [{"type":"name","value":"charset_size"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::chi2_statistic :index: 2 :vis: pub :toc: chi2_statistic :layout: [{"type":"name","value":"chi2_statistic"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::chi2_df :index: 2 :vis: pub :toc: chi2_df :layout: [{"type":"name","value":"chi2_df"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::chi2_p_value :index: 2 :vis: pub :toc: chi2_p_value :layout: [{"type":"name","value":"chi2_p_value"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::chi2_pass :index: 2 :vis: pub :toc: chi2_pass :layout: [{"type":"name","value":"chi2_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::serial_correlation :index: 2 :vis: pub :toc: serial_correlation :layout: [{"type":"name","value":"serial_correlation"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::serial_pass :index: 2 :vis: pub :toc: serial_pass :layout: [{"type":"name","value":"serial_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::batch_size :index: 2 :vis: pub :toc: batch_size :layout: [{"type":"name","value":"batch_size"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::duplicates :index: 2 :vis: pub :toc: duplicates :layout: [{"type":"name","value":"duplicates"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::collision_pass :index: 2 :vis: pub :toc: collision_pass :layout: [{"type":"name","value":"collision_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::entropy :index: 2 :vis: pub :toc: entropy :layout: [{"type":"name","value":"entropy"},{"type":"punctuation","value":": "},{"type":"link","value":"EntropyMetrics","target":"EntropyMetrics"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::nist_memorized :index: 2 :vis: pub :toc: nist_memorized :layout: [{"type":"name","value":"nist_memorized"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::nist_high_value :index: 2 :vis: pub :toc: nist_high_value :layout: [{"type":"name","value":"nist_high_value"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::nist_crypto_equiv :index: 2 :vis: pub :toc: nist_crypto_equiv :layout: [{"type":"name","value":"nist_crypto_equiv"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::nist_post_quantum :index: 2 :vis: pub :toc: nist_post_quantum :layout: [{"type":"name","value":"nist_post_quantum"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::rejection_max_valid :index: 2 :vis: pub :toc: rejection_max_valid :layout: [{"type":"name","value":"rejection_max_valid"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::rejection_rate_pct :index: 2 :vis: pub :toc: rejection_rate_pct :layout: [{"type":"name","value":"rejection_rate_pct"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::passwords_all_pass :index: 2 :vis: pub :toc: passwords_all_pass :layout: [{"type":"name","value":"passwords_all_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::selected_frameworks_pass :index: 2 :vis: pub :toc: selected_frameworks_pass :layout: [{"type":"name","value":"selected_frameworks_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::AuditSummary::overall_pass :index: 2 :vis: pub :toc: overall_pass :layout: [{"type":"name","value":"overall_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::CharRequirements :index: 1 :vis: pub :toc: struct CharRequirements :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"CharRequirements"}] ::: ::: :::::{rust:variable} paranoid_core::CharRequirements::min_lowercase :index: 2 :vis: pub :toc: min_lowercase :layout: [{"type":"name","value":"min_lowercase"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharRequirements::min_uppercase :index: 2 :vis: pub :toc: min_uppercase :layout: [{"type":"name","value":"min_uppercase"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharRequirements::min_digits :index: 2 :vis: pub :toc: min_digits :layout: [{"type":"name","value":"min_digits"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharRequirements::min_symbols :index: 2 :vis: pub :toc: min_symbols :layout: [{"type":"name","value":"min_symbols"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::CharRequirements :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"CharRequirements","target":"CharRequirements"}] :toc: impl CharRequirements ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::CharRequirements::max_with :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"max_with"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"other"},{"type":"punctuation","value":": "},{"type":"link","value":"Self","target":"Self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Self","target":"Self"}] ::: ::: :::: ::::{rust:function} paranoid_core::CharRequirements::total :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"total"},{"type":"punctuation","value":"("},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"usize","target":"usize"}] ::: ::: :::: ::::: :::::: ::::::{rust:struct} paranoid_core::CharacterCounts :index: 1 :vis: pub :toc: struct CharacterCounts :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"CharacterCounts"}] ::: ::: :::::{rust:variable} paranoid_core::CharacterCounts::lowercase :index: 2 :vis: pub :toc: lowercase :layout: [{"type":"name","value":"lowercase"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharacterCounts::uppercase :index: 2 :vis: pub :toc: uppercase :layout: [{"type":"name","value":"uppercase"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharacterCounts::digits :index: 2 :vis: pub :toc: digits :layout: [{"type":"name","value":"digits"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharacterCounts::symbols :index: 2 :vis: pub :toc: symbols :layout: [{"type":"name","value":"symbols"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::CharsetOptions :index: 1 :vis: pub :toc: struct CharsetOptions :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"CharsetOptions"}] ::: ::: :::::{rust:variable} paranoid_core::CharsetOptions::include_lowercase :index: 2 :vis: pub :toc: include_lowercase :layout: [{"type":"name","value":"include_lowercase"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::include_uppercase :index: 2 :vis: pub :toc: include_uppercase :layout: [{"type":"name","value":"include_uppercase"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::include_digits :index: 2 :vis: pub :toc: include_digits :layout: [{"type":"name","value":"include_digits"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::include_symbols :index: 2 :vis: pub :toc: include_symbols :layout: [{"type":"name","value":"include_symbols"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::include_space :index: 2 :vis: pub :toc: include_space :layout: [{"type":"name","value":"include_space"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::exclude_ambiguous :index: 2 :vis: pub :toc: exclude_ambiguous :layout: [{"type":"name","value":"exclude_ambiguous"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CharsetOptions::custom_charset :index: 2 :vis: pub :toc: custom_charset :layout: [{"type":"name","value":"custom_charset"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::CharsetOptions :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"CharsetOptions","target":"CharsetOptions"}] :toc: impl CharsetOptions ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::CharsetOptions::apply_frameworks :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"apply_frameworks"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"mut"},{"type":"space"},{"type":"keyword","value":"self"},{"type":"punctuation","value":", "},{"type":"name","value":"combined"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"link","value":"CombinedFrameworkRequirements","target":"CombinedFrameworkRequirements"},{"type":"punctuation","value":")"}] ::: ::: :::: ::::{rust:function} paranoid_core::CharsetOptions::build :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"build"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::: :::{rubric} Traits implemented ::: :::::{rust:impl} paranoid_core::CharsetOptions::Default :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"Default","target":"Default"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"CharsetOptions","target":"CharsetOptions"}] :toc: impl Default for CharsetOptions ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::CombinedFrameworkRequirements :index: 1 :vis: pub :toc: struct CombinedFrameworkRequirements :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"CombinedFrameworkRequirements"}] ::: ::: :::::{rust:variable} paranoid_core::CombinedFrameworkRequirements::min_length :index: 2 :vis: pub :toc: min_length :layout: [{"type":"name","value":"min_length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CombinedFrameworkRequirements::require_lowercase :index: 2 :vis: pub :toc: require_lowercase :layout: [{"type":"name","value":"require_lowercase"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CombinedFrameworkRequirements::require_uppercase :index: 2 :vis: pub :toc: require_uppercase :layout: [{"type":"name","value":"require_uppercase"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CombinedFrameworkRequirements::require_digits :index: 2 :vis: pub :toc: require_digits :layout: [{"type":"name","value":"require_digits"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::CombinedFrameworkRequirements::require_symbols :index: 2 :vis: pub :toc: require_symbols :layout: [{"type":"name","value":"require_symbols"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::ComplianceFramework :index: 1 :vis: pub :toc: struct ComplianceFramework :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"ComplianceFramework"}] ::: ::: :::::{rust:variable} paranoid_core::ComplianceFramework::id :index: 2 :vis: pub :toc: id :layout: [{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"FrameworkId","target":"FrameworkId"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::name :index: 2 :vis: pub :toc: name :layout: [{"type":"name","value":"name"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::description :index: 2 :vis: pub :toc: description :layout: [{"type":"name","value":"description"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"lifetime","value":"'static"},{"type":"space"},{"type":"link","value":"str","target":"str"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::min_length :index: 2 :vis: pub :toc: min_length :layout: [{"type":"name","value":"min_length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::min_entropy_bits :index: 2 :vis: pub :toc: min_entropy_bits :layout: [{"type":"name","value":"min_entropy_bits"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::require_mixed_case :index: 2 :vis: pub :toc: require_mixed_case :layout: [{"type":"name","value":"require_mixed_case"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::require_digits :index: 2 :vis: pub :toc: require_digits :layout: [{"type":"name","value":"require_digits"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceFramework::require_symbols :index: 2 :vis: pub :toc: require_symbols :layout: [{"type":"name","value":"require_symbols"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::ComplianceStatus :index: 1 :vis: pub :toc: struct ComplianceStatus :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"ComplianceStatus"}] ::: ::: :::::{rust:variable} paranoid_core::ComplianceStatus::id :index: 2 :vis: pub :toc: id :layout: [{"type":"name","value":"id"},{"type":"punctuation","value":": "},{"type":"link","value":"FrameworkId","target":"FrameworkId"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceStatus::name :index: 2 :vis: pub :toc: name :layout: [{"type":"name","value":"name"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceStatus::selected :index: 2 :vis: pub :toc: selected :layout: [{"type":"name","value":"selected"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ComplianceStatus::passed :index: 2 :vis: pub :toc: passed :layout: [{"type":"name","value":"passed"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::EntropyMetrics :index: 1 :vis: pub :toc: struct EntropyMetrics :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"EntropyMetrics"}] ::: ::: :::::{rust:variable} paranoid_core::EntropyMetrics::bits_per_char :index: 2 :vis: pub :toc: bits_per_char :layout: [{"type":"name","value":"bits_per_char"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::EntropyMetrics::total_entropy :index: 2 :vis: pub :toc: total_entropy :layout: [{"type":"name","value":"total_entropy"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::EntropyMetrics::log10_search_space :index: 2 :vis: pub :toc: log10_search_space :layout: [{"type":"name","value":"log10_search_space"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::EntropyMetrics::brute_force_years :index: 2 :vis: pub :toc: brute_force_years :layout: [{"type":"name","value":"brute_force_years"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::EntropyMetrics::collision_probability :index: 2 :vis: pub :toc: collision_probability :layout: [{"type":"name","value":"collision_probability"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::EntropyMetrics::passwords_for_50pct :index: 2 :vis: pub :toc: passwords_for_50pct :layout: [{"type":"name","value":"passwords_for_50pct"},{"type":"punctuation","value":": "},{"type":"link","value":"f64","target":"f64"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::GeneratedPassword :index: 1 :vis: pub :toc: struct GeneratedPassword :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"GeneratedPassword"}] ::: ::: :::::{rust:variable} paranoid_core::GeneratedPassword::value :index: 2 :vis: pub :toc: value :layout: [{"type":"name","value":"value"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::sha256_hex :index: 2 :vis: pub :toc: sha256_hex :layout: [{"type":"name","value":"sha256_hex"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::character_counts :index: 2 :vis: pub :toc: character_counts :layout: [{"type":"name","value":"character_counts"},{"type":"punctuation","value":": "},{"type":"link","value":"CharacterCounts","target":"CharacterCounts"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::pattern_issues :index: 2 :vis: pub :toc: pattern_issues :layout: [{"type":"name","value":"pattern_issues"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::compliance :index: 2 :vis: pub :toc: compliance :layout: [{"type":"name","value":"compliance"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"ComplianceStatus","target":"ComplianceStatus"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::selected_compliance_pass :index: 2 :vis: pub :toc: selected_compliance_pass :layout: [{"type":"name","value":"selected_compliance_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GeneratedPassword::all_pass :index: 2 :vis: pub :toc: all_pass :layout: [{"type":"name","value":"all_pass"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::GenerationReport :index: 1 :vis: pub :toc: struct GenerationReport :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"GenerationReport"}] ::: ::: :::::{rust:variable} paranoid_core::GenerationReport::request :index: 2 :vis: pub :toc: request :layout: [{"type":"name","value":"request"},{"type":"punctuation","value":": "},{"type":"link","value":"ResolvedRequest","target":"ResolvedRequest"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GenerationReport::passwords :index: 2 :vis: pub :toc: passwords :layout: [{"type":"name","value":"passwords"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"GeneratedPassword","target":"GeneratedPassword"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::GenerationReport::audit :index: 2 :vis: pub :toc: audit :layout: [{"type":"name","value":"audit"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"AuditSummary","target":"AuditSummary"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::ParanoidRequest :index: 1 :vis: pub :toc: struct ParanoidRequest :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"ParanoidRequest"}] ::: ::: :::::{rust:variable} paranoid_core::ParanoidRequest::length :index: 2 :vis: pub :toc: length :layout: [{"type":"name","value":"length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ParanoidRequest::count :index: 2 :vis: pub :toc: count :layout: [{"type":"name","value":"count"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ParanoidRequest::batch_size :index: 2 :vis: pub :toc: batch_size :layout: [{"type":"name","value":"batch_size"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ParanoidRequest::charset :index: 2 :vis: pub :toc: charset :layout: [{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"link","value":"CharsetSpec","target":"CharsetSpec"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ParanoidRequest::requirements :index: 2 :vis: pub :toc: requirements :layout: [{"type":"name","value":"requirements"},{"type":"punctuation","value":": "},{"type":"link","value":"CharRequirements","target":"CharRequirements"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ParanoidRequest::selected_frameworks :index: 2 :vis: pub :toc: selected_frameworks :layout: [{"type":"name","value":"selected_frameworks"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"FrameworkId","target":"FrameworkId"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_core::ParanoidRequest :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"ParanoidRequest","target":"ParanoidRequest"}] :toc: impl ParanoidRequest ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_core::ParanoidRequest::resolve :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"resolve"},{"type":"punctuation","value":"("},{"type":"punctuation","value":"&"},{"type":"keyword","value":"self"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Result","target":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"ResolvedRequest","target":"ResolvedRequest"},{"type":"punctuation","value":", "},{"type":"link","value":"ParanoidError","target":"ParanoidError"},{"type":"punctuation","value":">"}] ::: ::: :::: ::::: :::{rubric} Traits implemented ::: :::::{rust:impl} paranoid_core::ParanoidRequest::Default :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"Default","target":"Default"},{"type":"space"},{"type":"keyword","value":"for"},{"type":"space"},{"type":"link","value":"ParanoidRequest","target":"ParanoidRequest"}] :toc: impl Default for ParanoidRequest ::: ::: ::::: :::::: ::::::{rust:struct} paranoid_core::ResolvedRequest :index: 1 :vis: pub :toc: struct ResolvedRequest :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"ResolvedRequest"}] ::: ::: :::::{rust:variable} paranoid_core::ResolvedRequest::length :index: 2 :vis: pub :toc: length :layout: [{"type":"name","value":"length"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ResolvedRequest::count :index: 2 :vis: pub :toc: count :layout: [{"type":"name","value":"count"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ResolvedRequest::batch_size :index: 2 :vis: pub :toc: batch_size :layout: [{"type":"name","value":"batch_size"},{"type":"punctuation","value":": "},{"type":"link","value":"usize","target":"usize"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ResolvedRequest::charset :index: 2 :vis: pub :toc: charset :layout: [{"type":"name","value":"charset"},{"type":"punctuation","value":": "},{"type":"link","value":"String","target":"String"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ResolvedRequest::requirements :index: 2 :vis: pub :toc: requirements :layout: [{"type":"name","value":"requirements"},{"type":"punctuation","value":": "},{"type":"link","value":"CharRequirements","target":"CharRequirements"}] ::: ::: ::::: :::::{rust:variable} paranoid_core::ResolvedRequest::selected_frameworks :index: 2 :vis: pub :toc: selected_frameworks :layout: [{"type":"name","value":"selected_frameworks"},{"type":"punctuation","value":": "},{"type":"link","value":"Vec","target":"Vec"},{"type":"punctuation","value":"<"},{"type":"link","value":"FrameworkId","target":"FrameworkId"},{"type":"punctuation","value":">"}] ::: ::: ::::: ::::::