tktax-transaction-category 0.2.2

A Rust library for categorizing financial transactions using Porter stemming, CSV-driven classification, and advanced trait-based extensibility.
Documentation
#![allow(non_camel_case_types)]
// ---------------- [ File: tktax-transaction-category/src/mock_transaction_category.rs ]
crate::ix!();

impl GetCategoryGoldenCsv for MockTransactionCategory {

    fn category_golden_csv() -> String {

        // the categorization will only be as good as this file.
        // a typical transaction list can be parsed into
        // a format such as this and categorized to meet your
        // criteria
        //
        indoc!{"
            AmazonStore,AMZN MKTPLACE PMTS - HOME ESSENTIALS ORDER  
            AmazonStore,AMZN MKTPLACE PMTS - ELECTRONICS ACCESSORY PURCHASE  
            AmazonStore,AMZN MKTPLACE PMTS - DIGITAL MEDIA DOWNLOAD  
            AmazonStoreBusinessPurchase,AMZN BIZ PRIME - BULK PRINTER INK  
            AmazonStoreBusinessPurchase,AMZN BIZ PRIME - PROFESSIONAL REFERENCE BOOKS  
            AmazonStoreBusinessPurchase,AMZN BIZ PRIME - STANDING DESK COMPONENTS  
            AmazonStoreMedicalPurchase,AMZN MKTPLACE MED - FIRST AID KITS  
            AmazonStoreMedicalPurchase,AMZN MKTPLACE MED - SUPPORT BRACES AND WRAPS  
            AmazonStoreMedicalPurchase,AMZN MKTPLACE MED - BLOOD PRESSURE MONITOR  
            ApparelAndSportingGoods,SPORTING GOODS RETAIL - ATHLETIC FOOTWEAR  
            ApparelAndSportingGoods,OUTDOOR SUPPLY SHOP - WATER-RESISTANT JACKET  
            ApparelAndSportingGoods,URBAN SPORTS STORE - PREMIUM RUNNING SHORTS  
            Bars,LOCAL BAR & GRILL - LATE NIGHT DRINKS  
            Bars,UPTOWN TAVERN - CRAFT BEER TAB  
            Bars,WINE LOUNGE - HAPPY HOUR COCKTAILS  
            BusinessExpenditures,BUSINESS SVCS FEE - COPYWRITING CONTRACT  
            BusinessExpenditures,BUSINESS SOFTWARE SUBSCRIPTION - INVOICE PLATFORM  
            BusinessExpenditures,PROFESSIONAL REGISTRATION - CONFERENCE VENDOR BOOTH  
            BusinessTravel,AIRLINE TICKETING - WORKSHOP FLIGHT RESERVATION  
            BusinessTravel,HOTEL BOOKING - CORPORATE EVENT ACCOMMODATION  
            BusinessTravel,CAR RENTAL AGENCY - BUSINESS TRIP TRANSPORT  
            CloudServices,CLOUD COMPUTE PLATFORM - PREMIUM INSTANCE UPGRADE  
            CloudServices,ONLINE DEPLOYMENT SVCS - AUTOMATED SCALING PACKAGE  
            CloudServices,PLATFORM LOAD BALANCING - MICROSERVICE SUPPORT  
            CloudStorage,CLOUD FILE STORAGE - TEAM COLLABORATION ACCOUNT  
            CloudStorage,SECURE DATA BACKUP - INCREASED RETENTION PLAN  
            CloudStorage,OBJECT STORAGE UPGRADE - ARCHIVE TIER EXPANSION  
            EducationAndDonations,CHARITABLE DONATION - RESEARCH FUND CONTRIBUTION  
            EducationAndDonations,UNIVERSITY EVENT TICKET PURCHASE - FUNDRAISER ENTRY  
            EducationAndDonations,SCHOLARSHIP ENDOWMENT SUPPORT - ONLINE PAYMENT  
            Electronics,ELECTRONIC RETAILER - HD MONITOR PURCHASE  
            Electronics,ONLINE TECH SUPPLY - NOISE-CANCELLING HEADPHONES  
            Electronics,GADGET WAREHOUSE - WIRELESS ROUTER UPGRADE  
            Entertainment,STREAMING SERVICE FEE - MOVIE RENTAL PACKAGE  
            Entertainment,CONCERT PROMOTER - VIRTUAL SHOW TICKET  
            Entertainment,DIGITAL MEDIA STORE - VIDEO ON DEMAND PURCHASE  
            Financial,ONLINE BANK TRANSFER - SAVINGS ACCOUNT CONTRIBUTION  
            Financial,CREDIT CARD PAYMENT - WEB PORTAL REMITTANCE  
            Financial,BROKERAGE DEPOSIT - RETIREMENT FUND ALLOCATION  
            Financial__Check,PERSONAL CHECK DEPOSIT - MOBILE BANKING APP  
            Financial__Check,ISSUED CHECK - CONSULTING FEE SETTLEMENT  
            Financial__Check,PAPER CHECK PAYMENT - LOCAL TAX OFFICE  
            Financial__Deposit,DIRECT DEPOSIT - EMPLOYER PAYROLL CYCLE  
            Financial__Deposit,INSURANCE REFUND DEPOSIT - POLICY REIMBURSEMENT  
            Financial__Deposit,DIVIDEND DEPOSIT - BROKERAGE CREDIT  
            FinancialManagementSoftware,BUSINESS ACCOUNTING SOFTWARE - ANNUAL SUBSCRIPTION  
            FinancialManagementSoftware,INVOICE AUTOMATION SYSTEM - PLATFORM ACTIVATION  
            FinancialManagementSoftware,BUDGET ANALYSIS TOOL - ENTERPRISE PACKAGE  
            FoodServices,RESTAURANT CHARGE - WORK LUNCH TAKEOUT  
            FoodServices,CAFÉ TRANSACTION - SANDWICH AND COFFEE  
            FoodServices,CATERING SERVICES - COMPANY TRAINING EVENT  
            FoodServices_Groceries,GROCERY MARKET - FRESH PRODUCE AND DAIRY  
            FoodServices_Groceries,SUPERMARKET PURCHASE - PANTRY RESTOCK  
            FoodServices_Groceries,ORGANIC FOODS STORE - WEEKLY FOOD SUPPLY  
            GasStation,SERVICE STATION TRANSACTION - FULL SEDAN REFUEL  
            GasStation,GASOLINE PURCHASE - WINDSHIELD CLEANING INCLUDED  
            GasStation,FUEL STOP - LONG-TRIP TANK TOP-OFF  
            Gifts,ONLINE GIFT RETAILER - CUSTOM ENGRAVED FRAME  
            Gifts,GIFT SHOP PURCHASE - PREMIUM CHOCOLATE BASKET  
            Gifts,ELECTRONIC GIFT CARD - FRIEND’S BIRTHDAY PRESENT  
            Haircut,LOCAL BARBER - HAIRCUT AND SCALP CONDITIONER  
            Haircut,GROOMING SALON - HAIRCUT AND STYLE REFRESH  
            Haircut,BARBERSHOP CHARGE - BEARD SHAPING SERVICE  
            HealthAndFitness,FITNESS CLUB - GYM MEMBERSHIP RENEWAL  
            HealthAndFitness,VIRTUAL WORKOUT PLATFORM - MONTHLY SUBSCRIPTION  
            HealthAndFitness,ONLINE YOGA CLASS - FLEXIBILITY TRAINING FEE  
            Housing,APARTMENT RENT - MONTHLY LEASE PAYMENT  
            Housing,PROPERTY MANAGEMENT FEE - REPAIR REQUEST BILL  
            Housing,HOMEOWNERS ASSOCIATION DUES - QUARTERLY ASSESSMENT  
            HomeAndHardware,HOME IMPROVEMENT CENTER - BASIC REPAIR TOOLS  
            HomeAndHardware,PAINT STORE - INTERIOR TOUCH-UP SUPPLIES  
            HomeAndHardware,HARDWARE WAREHOUSE - DRILL AND FASTENER KIT  
            HotelAndLodging,HOTEL RESERVATION SITE - BUSINESS TRIP BOOKING  
            HotelAndLodging,HOSPITALITY CHARGE - EXTENDED SUITE RENTAL  
            HotelAndLodging,ONLINE BOOKING FEE - CLIENT MEETING ACCOMMODATION  
            InsuranceAndHealthcare,HEALTH INSURANCE PORTAL - PREMIUM PAYMENT  
            InsuranceAndHealthcare,AUTO INSURANCE - POLICY RENEWAL FEE  
            InsuranceAndHealthcare,LIFE INSURANCE PROVIDER - MONTHLY PLAN DRAFT  
            MedicalExpenses,HOSPITAL BILLING - CHECKUP COPAY  
            MedicalExpenses,SPECIALIST OFFICE CHARGE - CONSULTATION VISIT  
            MedicalExpenses,LAB SERVICE FEE - BLOOD TESTS PROCESSING  
            MobileAppsAndServices,MOBILE APP STORE - NOTE-TAKING APP SUBSCRIPTION  
            MobileAppsAndServices,MOBILE SERVICES - LANGUAGE LEARNING UPGRADE  
            MobileAppsAndServices,DIGITAL APP SUITE - PHOTO EDITING LICENSE  
            OfficeSupplies,OFFICE SUPPLY CENTER - BULK STATIONERY RESTOCK  
            OfficeSupplies,BUSINESS FURNITURE OUTLET - ERGONOMIC CHAIR PURCHASE  
            OfficeSupplies,DOCUMENT SECURITY SHOP - HIGH-CAPACITY SHREDDER  
            OnlineServicesAndSubscriptions,NEWS MEDIA WEBSITE - DAILY SUBSCRIPTION FEE  
            OnlineServicesAndSubscriptions,MUSIC STREAMING SERVICE - PREMIUM MEMBERSHIP  
            OnlineServicesAndSubscriptions,COLLABORATION TOOL PLATFORM - TEAM ACCESS LICENSE  
            PersonalServices,PERSONAL TRAINER AGENCY - WELLNESS SESSION FEE  
            PersonalServices,HOME CLEANING SERVICE - SCHEDULED APPOINTMENT  
            PersonalServices,PERSONAL ASSISTANT BOOKING - ERRAND SUPPORT  
            PetSupplies,PET CARE OUTLET - SPECIALTY DOG FOOD  
            PetSupplies,ONLINE PET STORE - CAT SCRATCHING POST  
            PetSupplies,ANIMAL SUPPLY RETAIL - FLEA COLLAR AND TREATS  
            Pharmacy,PHARMACY COUNTER - PRESCRIPTION MEDS AND VITAMINS  
            Pharmacy,DRUGSTORE PURCHASE - MAINTENANCE MEDICATION REFILL  
            Pharmacy,MEDICAL SUPPLY STORE - ALLERGY TABLETS AND OINTMENT  
            PublicTransportation,TRANSIT AUTHORITY - MONTHLY COMMUTER PASS  
            PublicTransportation,CITY BUS TICKETING - MULTI-RIDE CARD RECHARGE  
            PublicTransportation,REGIONAL RAIL SERVICE - WEEKDAY PASS PURCHASE  
            Shipping,COURIER SERVICE - INTERNATIONAL PARCEL SHIPMENT  
            Shipping,EXPRESS MAIL HANDLER - CRITICAL DOCUMENT DELIVERY  
            Shipping,PACKAGE DELIVERY FEE - RETURN LABEL PROCESSING  
            Storage,STORAGE FACILITY - SMALL UNIT RENTAL FEE  
            Storage,CLIMATE-CONTROLLED WAREHOUSE - UPGRADED SPACE PAYMENT  
            Storage,OFF-SITE DOCUMENT STORAGE - MONTHLY RENEWAL  
            TaxiAndRideshare,RIDESHARE SERVICE - AIRPORT DROP-OFF  
            TaxiAndRideshare,TAXI FARE - DOWNTOWN BUSINESS MEETING  
            TaxiAndRideshare,RIDESHARE PAYMENT - WEEKEND CONFERENCE TRIP  
            Telecom,MOBILE PHONE CARRIER - MONTHLY BILL SETTLEMENT  
            Telecom,INTERNET PROVIDER - UPGRADED SERVICE PACKAGE  
            Telecom,SATELLITE TV NETWORK - SUBSCRIPTION RENEWAL CHARGE  
            TravelAndTransportation,AIRLINE BOOKING AGENT - INTERNATIONAL FLIGHT TICKETS  
            TravelAndTransportation,LONG-DISTANCE BUS FARE - TEAM BUILDING RETREAT  
            TravelAndTransportation,LUXURY VEHICLE RENTAL - EXECUTIVE TRANSPORTATION  
            Unknown,UNIDENTIFIED TRANSACTION - PENDING INVESTIGATION  
            Unknown,UNRECOGNIZED VENDOR CHARGE - BANK STATEMENT REVIEW  
            Unknown,DISPUTED TRANSACTION - REVERSAL PROCESS INITIATED  
            UtilitiesAndServices,CITY UTILITIES - WATER AND SEWER BILL  
            UtilitiesAndServices,ELECTRIC COMPANY PAYMENT - MONTHLY USAGE FEE  
            UtilitiesAndServices,NATURAL GAS PROVIDER - RATE PLAN ADJUSTMENT  
            VehicleServices,AUTO SERVICE CENTER - OIL CHANGE AND MAINTENANCE  
            VehicleServices,TIRE REPLACEMENT SHOP - BRAKE INSPECTION BILL  
            VehicleServices,PROFESSIONAL DETAILING - INTERIOR CLEANING SERVICE  
            VirtualPrivateNetwork,SECURE VPN PLATFORM - ANNUAL SUBSCRIPTION  
            VirtualPrivateNetwork,ENCRYPTED NETWORK TUNNEL - ENTERPRISE LICENSE UPGRADE  
            VirtualPrivateNetwork,VPN SERVICE RENEWAL - MULTI-DEVICE PROTECTION
        "}.to_string()
    }
}

/// Do something like this in your own code and use it in the top level 
enhanced_enum!{
    MockTransactionCategory {
        AmazonStore,
        AmazonStoreBusinessPurchase,
        AmazonStoreMedicalPurchase,
        ApparelAndSportingGoods,
        Bars,
        BusinessExpenditures,
        BusinessTravel,
        CloudServices,
        CloudStorage,
        EducationAndDonations,
        Electronics,
        Entertainment,
        Financial,
        Financial__Check,
        Financial__Deposit,
        FinancialManagementSoftware,
        FoodServices,
        FoodServices_Groceries,
        FoodServices_Deli,
        FoodServices_Coffee,
        GasStation,
        Gifts,
        Haircut,
        HealthAndFitness,
        Housing,
        HomeAndHardware,
        HotelAndLodging,
        InsuranceAndHealthcare,
        MedicalExpenses,
        MobileAppsAndServices,
        OfficeSupplies,
        OnlineServicesAndSubscriptions,
        PersonalServices,
        PetSupplies,
        Pharmacy,
        PublicTransportation,
        Shipping,
        Storage,
        TaxiAndRideshare,
        Telecom,
        TravelAndTransportation,
        Unknown,
        UtilitiesAndServices,
        VehicleServices,
        VirtualPrivateNetwork,
        Weed,
    }
}

impl TransactionCategory for MockTransactionCategory {}

impl Unknown for MockTransactionCategory {
    fn unknown() -> Self { MockTransactionCategory::Unknown }
}

impl PureBusinessExpenditureCategories for MockTransactionCategory {
    fn pure_business_expenditure_categories() -> &'static [Self] {
        &[
            MockTransactionCategory::Telecom,
            MockTransactionCategory::BusinessTravel,
            MockTransactionCategory::Storage,
            MockTransactionCategory::VirtualPrivateNetwork,
            MockTransactionCategory::CloudServices,
            MockTransactionCategory::CloudStorage,
            MockTransactionCategory::OfficeSupplies,
            MockTransactionCategory::Shipping,
            MockTransactionCategory::FinancialManagementSoftware,
        ]
    }
}

impl MedicalAndInsuranceCategories for MockTransactionCategory {
    fn medical_and_insurance_categories() -> &'static [Self] {
        &[
            MockTransactionCategory::MedicalExpenses,
            MockTransactionCategory::InsuranceAndHealthcare,
            MockTransactionCategory::Pharmacy,
        ]
    }
}

impl TreasuryAndChecksCategories for MockTransactionCategory {
    fn treasury_and_checks_categories() -> &'static [Self] {
        &[
            MockTransactionCategory::Financial,
        ]
    }
}

impl GetAmazonStoreMedicalPurchaseCategory for MockTransactionCategory {

    fn amazon_store_medical_purchase_category() -> &'static Self where Self: Sized {
        &Self::AmazonStoreMedicalPurchase
    }
}

impl GetAmazonStoreBusinessPurchaseCategory for MockTransactionCategory {

    fn amazon_store_business_purchase_category() -> &'static Self where Self: Sized {
        &Self::AmazonStoreBusinessPurchase
    }
}