Diffstat (limited to 'src/build/builders/core/value.mmd')
| -rw-r--r-- | src/build/builders/core/value.mmd | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/build/builders/core/value.mmd b/src/build/builders/core/value.mmd new file mode 100644 index 0000000..806e622 --- /dev/null +++ b/src/build/builders/core/value.mmd @@ -0,0 +1,51 @@ +sequenceDiagram + participant walker as Walker + participant request as RequestHint + participant value as Value\nT + participant value_borrow as Value\n&'ctx T + participant value_temp_borrow as Value\n&'a T + participant value_mut_borrow as Value\n&'ctx mut T + participant value_temp_mut_borrow as Value\n&'a mut T + + Note over request,value_temp_mut_borrow: ValueBuilder + + rect rgba(120, 120, 120, 0.2) + note left of walker: Value Flow\nOwned + walker ->> value: visit() + end + rect rgba(120, 120, 120, 0.2) + note left of walker: Value Flow\nContext Borrowed + walker ->> value_borrow: visit() + end + rect rgba(120, 120, 120, 0.2) + note left of walker: Value Flow\nTemp Borrowed + walker ->> value_temp_borrow: visit() + end + rect rgba(120, 120, 120, 0.2) + note left of walker: Value Flow\nContext Mutable Borrowed + walker ->> value_mut_borrow: visit() + end + rect rgba(120, 120, 120, 0.2) + note left of walker: Value Flow\nTemp Mutable Borrowed + walker ->> value_temp_mut_borrow: visit() + end + rect rgba(120, 120, 120, 0.2) + note left of walker: Request Hint Flow + walker ->> request: request_hint() + alt Walker supports by ownership + request ->> walker: hint<Value<T>>() + walker ->> value: visit() + else Walker supports by context borrow + request ->> walker: hint<Value<&'ctx T>>() + walker ->> value_borrow: visit() + else Walker supports by temp borrow + request ->> walker: hint<Value<&'a T>>() + walker ->> value_temp_borrow: visit() + else Walker supports by context mutable borrow + request ->> walker: hint<Value<&'ctx mut T>>() + walker ->> value_mut_borrow: visit() + else Walker supports by tmep mutable borrow + request ->> walker: hint<Value<&'a mut T>>() + walker ->> value_temp_mut_borrow: visit() + end + end |