quickbacktrack icon indicating copy to clipboard operation
quickbacktrack copied to clipboard

Is this crate designed to solve a problem of I/O combination sets?

Open zbraniecki opened this issue 3 years ago • 1 comments

I have the following scenario:

  • Two sources (imagine, directories) - (S1, S2)
  • List of files (resources) - (R1, R2, R3)
  • The code is synchronous, so testing of partial solutions happens sequentially
  • I am building an iterator that is mean to return a list of solutions to the problem like this:
    • [S1xR1, S1xR2, S1xR3]
    • [S1xR1, S1xR2, S2xR3]
    • [S1xR1, S2xR2, S2xR3]
    • [S2xR1, S2xR2, S2xR3]
    • [S2xR1, S1xR2, S2xR3]
    • [S2xR1, S1xR2, S1xR3]
    • [S1xR1, S2xR2, S1xR3]
    • [S2xR1, S2xR2, S1xR3]

It's not very important for me which order the fallbacks come in.

What I do care is about backtracking/pruning of failure branches. If S2xR2 returns false, it should break any attempt at constructing any combination with that branch.

Does this crate solve such problem? Can I get pointed at any examples?

zbraniecki avatar Nov 05 '20 21:11 zbraniecki

This is an interesting use case.

Perhaps we could implement (U, T) : Puzzle where U : Puzzle and T : Puzzle?

bvssvni avatar Nov 08 '20 03:11 bvssvni