def visit_middleware_tree(self, m_tree: MiddlewareTreeInfo) -> str:
    'Visit a MiddlewareTreeInfo instance. Usually called by `process`.'
    before = (len(m_tree.request) + len(m_tree.resource))
    after = len(m_tree.response)
    if ((before + after) == 0):
        return ''
    each = 2
    initial = self.indent
    if (after > before):
        self.indent += (each * (after - before))
    text = []
    for r in m_tree.request:
        text.append(self.process(r))
        self.indent += each
    if text:
        text.append('')
    for r in m_tree.resource:
        text.append(self.process(r))
        self.indent += each
    if (m_tree.resource or (not text)):
        text.append('')
    self.indent += each
    text.append('{}├── Process route responder'.format(self.tab))
    self.indent -= each
    if m_tree.response:
        text.append('')
    for r in m_tree.response:
        self.indent -= each
        text.append(self.process(r))
    self.indent = initial
    return '\n'.join(text)
Visit a MiddlewareTreeInfo instance. Usually called by `process`.
def visit_middleware_tree(self, m_tree: MiddlewareTreeInfo) -> str:
    
    before = (len(m_tree.request) + len(m_tree.resource))
    after = len(m_tree.response)
    if ((before + after) == 0):
        return 
    each = 2
    initial = self.indent
    if (after > before):
        self.indent += (each * (after - before))
    text = []
    for r in m_tree.request:
        text.append(self.process(r))
        self.indent += each
    if text:
        text.append()
    for r in m_tree.resource:
        text.append(self.process(r))
        self.indent += each
    if (m_tree.resource or (not text)):
        text.append()
    self.indent += each
    text.append('{}├── Process route responder'.format(self.tab))
    self.indent -= each
    if m_tree.response:
        text.append()
    for r in m_tree.response:
        self.indent -= each
        text.append(self.process(r))
    self.indent = initial
    return '\n'.join(text)