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