tktax 0.2.4

Main entry point for the tktax financial suite
Documentation
// ---------------- [ File: tktax/src/main.rs ]
use tktax::*;
use tktax_3p::*;
use tktax_transaction_category::*;

type TxCat = MockTransactionCategory;

fn example_main() -> Result<(),AccountError> {

    tracing_subscriber::fmt()
        .with_env_filter(EnvFilter::new("info"))
        .init();

    let donation_hooks = DonationsHooksBuilder::default()
        .create_donation_builder_fn(DonationBuilder::new)
        .create_amazon_item_map_fn(create_amazon_item_map)
        .create_donations_fn(mock_example_donations)
        .build()
        .unwrap();

    let analysis_hooks = AccountAnalysisHooksBuilder::default()
        .program_config(ProgramConfig::default())
        .create_amazon_biz_expenses_fn(Some(mock_example_amazon_business_expenses))
        .create_amazon_med_expenses_fn(Some(mock_example_amazon_med_expenses))
        .donations_hooks(Some(donation_hooks))
        .build()
        .unwrap();

    let donation_config = DonationConfigBuilder::default()
        .donation_date(NaiveDate::from_ymd(2023,01,01))
        .donation_location(DonationLocation::Goodwill { name: "downtown" })
        .max_item_age(NaiveDate::from_ymd(2015,01,01))
        .build()
        .unwrap();

    analysis_hooks.run_analysis::<TxCat>(
        TrackedYear::Twenty23,
        vec![
            AccountKind::Credit, 
            AccountKind::Checking
        ],
        Some(&donation_config)
    )?;

    Ok(())
}

fn main() -> Result<(),AccountError> {
    example_main()?;
    Ok(())
}