There can also be some variations of optics_type!(Bar is B(_) => C { .. }):
| Type | Before called | After returns (Output) | After returns (Residual) | After unwinds |
|---|---|---|---|---|
optics_type!(Bar is B(_) => C { .. }) |
B(_) |
C { .. } |
C { .. } |
B(_) | C { .. } |
optics_type!(Bar is B(_) |=> C { .. }) |
B(_) |
B(_) | C { .. } |
B(_) | C { .. } |
B(_) | C { .. } |
optics_type!(Bar is B(_) ?=> C { .. }) |
B(_) |
C { .. } |
B(_) | C { .. } |
B(_) | C { .. } |
optics_type!(Bar is B(_) !=> C { .. }) |
B(_) |
C { .. } |
C { .. } |
C { .. } |
where ?=> only applies to functions returning impl Try.