pub enum BankStrategy {
Default,
NoTests,
Summary,
}
Expand description
Strategy for generating code bank documentation.
This enum controls how the code bank generator processes and formats the code.
§Examples
use codebank::BankStrategy;
// Use default strategy for complete code representation
let strategy = BankStrategy::Default;
// Use NoTests strategy to exclude test code
let strategy = BankStrategy::NoTests;
// Use Summary strategy for public interface only
let strategy = BankStrategy::Summary;
Variants§
Default
Generate the full code bank for the given directory using default settings. This includes all code elements with their complete implementations.
§Examples
use codebank::{Bank, BankStrategy, CodeBank};
use std::path::Path;
let code_bank = CodeBank::try_new()?;
// Generate complete documentation
let content = code_bank.generate(
Path::new("src"), // Use your source directory
BankStrategy::Default
)?;
assert!(content.contains("# Code Bank"));
NoTests
Generate the code bank without tests. This excludes test modules, test functions, and other test-related code.
§Examples
use codebank::{Bank, BankStrategy, CodeBank, Result};
use std::path::Path;
let code_bank = CodeBank::try_new()?;
// Generate documentation excluding tests
let content = code_bank.generate(
Path::new("src"), // Use your source directory
BankStrategy::NoTests
)?;
// Content should not contain test-related code
let lines = content.lines().collect::<Vec<_>>();
assert!(!lines.iter().any(|line| line.starts_with(&"#[cfg(test)]")));
assert!(!lines.iter().any(|line| line.starts_with(&"#[test]")));
assert!(!lines.iter().any(|line| line.starts_with(&"mod tests {")));
Summary
Generate a summary, skip all non public units. For functions, only contain signature and skip the body.
§Examples
use codebank::{Bank, BankStrategy, CodeBank};
use std::path::Path;
let code_bank = CodeBank::try_new()?;
// Generate public interface summary
let content = code_bank.generate(
Path::new("src"), // Use your source directory
BankStrategy::Summary
)?;
// Content should contain function signatures but not implementations
assert!(content.contains("{ ... }"));
Trait Implementations§
Source§impl Clone for BankStrategy
impl Clone for BankStrategy
Source§fn clone(&self) -> BankStrategy
fn clone(&self) -> BankStrategy
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for BankStrategy
impl Debug for BankStrategy
Source§impl Default for BankStrategy
impl Default for BankStrategy
Source§fn default() -> BankStrategy
fn default() -> BankStrategy
Returns the “default value” for a type. Read more
Source§impl PartialEq for BankStrategy
impl PartialEq for BankStrategy
impl Copy for BankStrategy
impl Eq for BankStrategy
impl StructuralPartialEq for BankStrategy
Auto Trait Implementations§
impl Freeze for BankStrategy
impl RefUnwindSafe for BankStrategy
impl Send for BankStrategy
impl Sync for BankStrategy
impl Unpin for BankStrategy
impl UnwindSafe for BankStrategy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more