in betamessage.go [2045:2081]
func (r BetaTextBlock) ToParam() BetaTextBlockParam {
var p BetaTextBlockParam
p.Type = r.Type
p.Text = r.Text
p.Citations = make([]BetaTextCitationParamUnion, len(r.Citations))
for i, citation := range r.Citations {
switch citationVariant := citation.AsAny().(type) {
case BetaCitationCharLocation:
var citationParam BetaCitationCharLocationParam
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] = BetaTextCitationParamUnion{OfRequestCharLocationCitation: &citationParam}
case BetaCitationPageLocation:
var citationParam BetaCitationPageLocationParam
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] = BetaTextCitationParamUnion{OfRequestPageLocationCitation: &citationParam}
case BetaCitationContentBlockLocation:
var citationParam BetaCitationContentBlockLocationParam
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] = BetaTextCitationParamUnion{OfRequestContentBlockLocationCitation: &citationParam}
}
}
return p
}