lambdust 0.1.1

A Scheme dialect with gradual typing and effect systems
use crate::effects::Effect;
use super::TestExecutionContext;

/// Test assertion for verifying behavior
#[derive(Debug, Clone)]
pub enum TestAssertion {
    /// Assert that a specific method was called
    MethodCalled(String, usize), // method name, call count
    
    /// Assert performance characteristics
    PerformanceWithin {
        /// Maximum allowed execution time in milliseconds
        max_time_ms: u64,
        /// Maximum allowed memory usage in bytes
        max_memory_bytes: usize,
    },
    
    /// Assert effect usage
    EffectsUsed(Vec<Effect>),
    
    /// Assert continuation capture
    ContinuationsCaptured(usize),
    
    /// Custom assertion function
    Custom(fn(&TestExecutionContext) -> bool),
}