Skip to content

Conversation

@tylerbutler
Copy link
Owner

Summary

  • Add granular feature flags for fine-grained control over sickle functionality
  • Implement serde Serialize support (to_string) to complement existing Deserialize

Feature Dependency Graph

serde ─┬─> serde-deserialize ──> hierarchy ──> parse
       └─> serde-serialize ───> printer ────> hierarchy ──> parse

intern (independent)

Features

Feature Description Dependencies
parse Core parsing -
hierarchy Build hierarchical model parse
printer CCL printer hierarchy
serde-deserialize Serde Deserialize hierarchy
serde-serialize Serde Serialize (NEW) printer
serde Both ser/de serde-deserialize, serde-serialize
full Everything all

Test plan

  • All existing tests pass
  • New serialization tests pass
  • Feature combinations compile correctly
  • Downstream crates (santa-data, santa) still work

Add feature flags for fine-grained control over sickle functionality:
- `parse`: Core parsing (parse, parse_indented)
- `hierarchy`: Build hierarchical model (build_hierarchy, load)
- `printer`: CCL printer for serializing CclObject to text
- `serde-deserialize`: Serde Deserialize support (from_str)
- `serde-serialize`: Serde Serialize support (to_string) - NEW
- `serde`: Both serialization and deserialization
- `full`: All features

Features form a dependency chain where higher-level features
automatically enable their dependencies.
Add tests for Vec, HashMap, floats, deeply nested structs,
and roundtrip serialize/deserialize verification.
@tylerbutler tylerbutler marked this pull request as ready for review December 5, 2025 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants