in message.go [2240:2276]
func (r TextBlock) ToParam() TextBlockParam {
var p TextBlockParam
p.Type = r.Type
p.Text = r.Text
p.Citations = make([]TextCitationParamUnion, len(r.Citations))
for i, citation := range r.Citations {
switch citationVariant := citation.AsAny().(type) {
case CitationCharLocation:
var citationParam CitationCharLocationParam
citationParam.Type = citationVariant.Type
citationParam.DocumentTitle = toParam(citationVariant.DocumentTitle, citationVariant.JSON.DocumentTitle)
citationParam.CitedText = citationVariant.CitedText
citationParam.DocumentIndex = citationVariant.DocumentIndex
citationParam.EndCharIndex = citationVariant.EndCharIndex
citationParam.StartCharIndex = citationVariant.StartCharIndex
p.Citations[i] = TextCitationParamUnion{OfRequestCharLocationCitation: &citationParam}
case CitationPageLocation:
var citationParam CitationPageLocationParam
citationParam.Type = citationVariant.Type
citationParam.DocumentTitle = toParam(citationVariant.DocumentTitle, citationVariant.JSON.DocumentTitle)
citationParam.DocumentIndex = citationVariant.DocumentIndex
citationParam.EndPageNumber = citationVariant.EndPageNumber
citationParam.StartPageNumber = citationVariant.StartPageNumber
p.Citations[i] = TextCitationParamUnion{OfRequestPageLocationCitation: &citationParam}
case CitationContentBlockLocation:
var citationParam CitationContentBlockLocationParam
citationParam.Type = citationVariant.Type
citationParam.DocumentTitle = toParam(citationVariant.DocumentTitle, citationVariant.JSON.DocumentTitle)
citationParam.CitedText = citationVariant.CitedText
citationParam.DocumentIndex = citationVariant.DocumentIndex
citationParam.EndBlockIndex = citationVariant.EndBlockIndex
citationParam.StartBlockIndex = citationVariant.StartBlockIndex
p.Citations[i] = TextCitationParamUnion{OfRequestContentBlockLocationCitation: &citationParam}
}
}
return p
}