parses paypal soap logs
1# CRUSH Development Guidelines 2 3## Commands 4- **Build with nix**: `nix build` 5- **Run parser**: `./result/bin/soapdump <logfile>` 6- **Test parser**: `./result/bin/soapdump -s <logfile>` (summary mode) 7- **Help**: `./result/bin/soapdump --help` 8- **Build with clang**: `clang++ -std=c++17 -O3 -o soapdump src/soapdump.cpp` 9 10## Code Style 11- **Language**: C++17 12- **Formatting**: 13 - 4-space indentation 14 - Functions use camelCase 15 - Classes use PascalCase 16 - Variables use camelCase 17- **Structure**: 18 - Clear function separation 19 - Help documentation included 20 - Error handling with return codes 21- **Dependencies**: Standard C++ libraries only 22 23## Build System 24- **Nix Flake**: For reproducible builds and development environment 25- **CMake**: For cross-platform build configuration 26- **Compiler**: Clang++ with C++17 standard 27 28## Best Practices 29- Always validate input files exist 30- Use proper error messages and return codes 31- Include comprehensive help documentation 32- Follow pipe-separated output format for structured data 33- Handle edge cases in XML parsing with regex 34- Use STL containers and algorithms for performance 35 36## Naming Conventions 37- Variables: camelCase 38- Functions: camelCase 39- Classes: PascalCase 40- Files: kebab-case.cpp 41 42## Error Handling 43- Check file existence before processing 44- Validate arguments 45- Return appropriate codes (0 for success, 1 for error) 46- Use try/catch blocks for exception handling