140 std::cout <<
"Debug mode enabled: Observer and Logger registered.\n";
146 std::string currentMessage = config.
message;
149 std::cout <<
"Encoding message: " << currentMessage <<
"\n";
151 std::cout <<
"Result (Ciphertext): " << currentMessage <<
"\n";
163 std::cout <<
"Decoding message: " << currentMessage <<
"\n";
165 std::cout <<
"Result (Plaintext): " << decoded <<
"\n";
169 std::string cleanOriginal =
"";
171 if (std::isalpha(c)) cleanOriginal += std::toupper(c);
173 if (decoded == cleanOriginal) {
174 std::cout <<
"Success: Decoded message matches original!"
177 std::cout <<
"Failure: Decoded message mismatch."
std::string processMessage(EnigmaMachine &machine, const std::string &input, bool)
Processes a message through the Enigma Machine. Transforms each character and optionally prints debug...
int main(int argc, char **argv)
Main entry point.
void runApplication(const AppConfig &config)
AppConfig parseArguments(int argc, char **argv)
Parses command line arguments and populates the AppConfig struct. Exits the program (via CLI11::Exit)...
std::string resolveDefaultAssetPath()
Resolves the default asset path based on execution context. Checks for a local 'assets/' folder first...