Skip to content

Refactor: Move parsing into its own module #214

@carlaKC

Description

@carlaKC

As is: we have a monolith main function that performs all parsing and creates a simulation.

Motivation: if using simln as a library, it would be nice to have a parsing module in sim-cli/src/parsing.rs to pull in some of the parsing/validation that main currently performs.

Some suggestions for things that we can pull out in a refactor:

  • Cli: move into module so that it can be re-used externally
  • SimParams: move to parsing module (it doesn't belong in the lib) (also move NodeConnection and ActivityParser)
  • get_clients: builds the map of dyn LightningNode that'll be passed to the simulation
  • validate_activities: performs ActivityParser -> ActivityDefinition conversion
  • read_sim_path: this is a nice to have frill, might as well make it accessible for other folks

The only thing that's tricky here is that validate_activities needs to make calls to our dyn LightningNode to validate that pubkeys exist in their graph, so that needs to be threaded through. Ideally this could just be a generic closure that looks up the node, but it gets ugly when you start dealing with async closures (I briefly tried this in the past and gave up).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Code HealthRefactors and improvements to the structure of the codegood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions