Describe the bug
In #207 (comment), we found that the apply_path_mapping function wasn't doing the correct accounting for its operation count.
Expected Behaviour
Instead of changing the account, we can fix the implementation to use a more efficient algorithm.
The code https://github.com/aws-deadline/deadline-cloud-job-attachments/blob/2ae3635c6f5642846e9a98cdf1075f867886133a/src/deadline/job_attachments/_path_mapping.py#L92 uses a trie as an accelerator for applying the path mapping. We should port that trie to this crate, both expose it as a struct that any clients of the crate can use, and make it the basis of the apply_path_mapping function.
Current Behaviour
Currently it iterates through each path mapping rule and attempts to apply it.
Reproduction Steps
Environment
Describe the bug
In #207 (comment), we found that the apply_path_mapping function wasn't doing the correct accounting for its operation count.
Expected Behaviour
Instead of changing the account, we can fix the implementation to use a more efficient algorithm.
The code https://github.com/aws-deadline/deadline-cloud-job-attachments/blob/2ae3635c6f5642846e9a98cdf1075f867886133a/src/deadline/job_attachments/_path_mapping.py#L92 uses a trie as an accelerator for applying the path mapping. We should port that trie to this crate, both expose it as a struct that any clients of the crate can use, and make it the basis of the apply_path_mapping function.
Current Behaviour
Currently it iterates through each path mapping rule and attempts to apply it.
Reproduction Steps
Environment