#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

int main() {
   uCalc uc;
   auto t = uc.NewTransformer();
   t.Text("ID:100, Name:Admin, ID:200");

   // Define two rules, but only one is marked as 'focusable'
   auto idRule = t.Pattern("ID:{@Number}").SetFocusable(true);
   auto nameRule = t.Pattern("Name:{@Alpha}").SetFocusable(false);
   t.Find();

   // The total count includes all matches regardless of properties
   cout << "Total matches found: " << t.Matches().Count() << endl;

   // The count changes when we filter the list to only include focusable matches
   auto focusableMatches = t.GetMatches(MatchesOption::FocusableOnly);
   cout << "Focusable matches count: " << focusableMatches.Count() << endl;
}