[ JsDoc { span: Span { lo: BytePos( 28, ), hi: BytePos( 38, ), ctxt: #0, }, description: Text { span: Span { lo: BytePos( 28, ), hi: BytePos( 28, ), ctxt: #0, }, value: Atom('' type=static), }, tags: [ TagItem { span: Span { lo: BytePos( 28, ), hi: BytePos( 33, ), ctxt: #0, }, tag_name: Text { span: Span { lo: BytePos( 28, ), hi: BytePos( 33, ), ctxt: #0, }, value: Atom('lends' type=inline), }, tag: Lends( LendsTag { span: Span { lo: BytePos( 28, ), hi: BytePos( 33, ), ctxt: #0, }, name: NamePath { span: Span { lo: BytePos( 28, ), hi: BytePos( 38, ), ctxt: #0, }, components: [ Text { span: Span { lo: BytePos( 28, ), hi: BytePos( 34, ), ctxt: #0, }, value: Atom('Person' type=inline), }, ], }, }, ), }, ], }, JsDoc { span: Span { lo: BytePos( 65, ), hi: BytePos( 72, ), ctxt: #0, }, description: Text { span: Span { lo: BytePos( 65, ), hi: BytePos( 65, ), ctxt: #0, }, value: Atom('' type=static), }, tags: [ TagItem { span: Span { lo: BytePos( 65, ), hi: BytePos( 75, ), ctxt: #0, }, tag_name: Text { span: Span { lo: BytePos( 65, ), hi: BytePos( 75, ), ctxt: #0, }, value: Atom('constructs' type=dynamic), }, tag: Constructs( ConstructsTag { span: Span { lo: BytePos( 65, ), hi: BytePos( 75, ), ctxt: #0, }, name: Text { span: Span { lo: BytePos( 0, ), hi: BytePos( 0, ), ctxt: #0, }, value: Atom('' type=static), }, }, ), }, ], }, JsDoc { span: Span { lo: BytePos( 162, ), hi: BytePos( 293, ), ctxt: #0, }, description: Text { span: Span { lo: BytePos( 162, ), hi: BytePos( 195, ), ctxt: #0, }, value: Atom('Callback for `say`. * *' type=dynamic), }, tags: [ TagItem { span: Span { lo: BytePos( 162, ), hi: BytePos( 170, ), ctxt: #0, }, tag_name: Text { span: Span { lo: BytePos( 162, ), hi: BytePos( 170, ), ctxt: #0, }, value: Atom('callback' type=dynamic), }, tag: Callback( CallbackTag { span: Span { lo: BytePos( 162, ), hi: BytePos( 170, ), ctxt: #0, }, name_path: NamePath { span: Span { lo: BytePos( 162, ), hi: BytePos( 293, ), ctxt: #0, }, components: [ Text { span: Span { lo: BytePos( 162, ), hi: BytePos( 168, ), ctxt: #0, }, value: Atom('Person' type=inline), }, ], }, }, ), }, ], }, JsDoc { span: Span { lo: BytePos( 362, ), hi: BytePos( 362, ), ctxt: #0, }, description: Text { span: Span { lo: BytePos( 362, ), hi: BytePos( 407, ), ctxt: #0, }, value: Atom('Speak a message asynchronously. * *' type=dynamic), }, tags: [ TagItem { span: Span { lo: BytePos( 362, ), hi: BytePos( 367, ), ctxt: #0, }, tag_name: Text { span: Span { lo: BytePos( 362, ), hi: BytePos( 367, ), ctxt: #0, }, value: Atom('param' type=inline), }, tag: Parameter( ParameterTag { span: Span { lo: BytePos( 362, ), hi: BytePos( 367, ), ctxt: #0, }, name: None, ty: Some( Text { span: Span { lo: BytePos( 362, ), hi: BytePos( 382, ), ctxt: #0, }, value: Atom('{Person~sayCallback}' type=dynamic), }, ), desc: Text { span: Span { lo: BytePos( 362, ), hi: BytePos( 364, ), ctxt: #0, }, value: Atom('cb' type=inline), }, }, ), }, ], }, ]