svgbobdoc::transform! { /// ```svgbob,[traits] /// "r3_kernel" ╵ "your_app" /// ╵ /// ╵ build! ╵ use_port! /// ╵ ╵ /// .------------------. ╵ .-----------------. ╵ /// | trait KernelCfg1 | ╵ | impl KernelCfg1 | ╵ /// '------------------' ╵ '-----------------' ╵ /// ^ ╵ ^ | ╵ /// | ╵ | v ╵ /// | ╵ .------' Config data ------------. /// | ╵ | ^ ╵ | /// | ╵ | | ╵ v /// .------------. ╵ | | ╵ .-----------. /// | trait Port | ╵ +--------------)----------> | impl Port | /// '------------' ╵ | | ╵ '-----------' /// ^ ╵ | | ╵ | /// | ╵ | | ╵ | /// | ╵ | | ╵ | /// | ╵ | | ╵ | /// .------------------. ╵ | .-----------------. ╵ | /// | trait KernelCfg2 | ╵ | | impl KernelCfg2 | ╵ | /// '------------------' ╵ | '-----------------' ╵ | /// ^ ╵ | ^ ^ ╵ | /// | ╵─ ┼ ─ ─ ─ ─ ┼ ─ ─ ─ ─ ┼ ─ ─╵ | /// | | .------' | ╵ | /// | | | | ╵ | /// .--------------------. .-------------------. | ╵ | /// | trait KernelTraits | | impl KernelTraits |<--+--)-------------' /// '--------------------' '-------------------' | | ╵ /// ^ ^ | '----------. /// | | .-----' ╵ | /// | | | ╵ | /// | | v ╵ .-------------. /// .--------------------. .-------------------. .---|Entry points | /// | trait PortToKernel | | impl PortToKernel | <---' ╵ '-------------' /// '--------------------' '-------------------' ╵ /// ``` }