in releases/go/encryption-sdk/Header/Header.go [284:349]
func (_static *CompanionStruct_Default___) ReadHeaderBody(buffer m_SerializeFunctions.ReadableBuffer, maxEdks m_Wrappers.Option, mpl *m_MaterialProviders.MaterialProvidersClient) m_Wrappers.Result {
var _0_valueOrError0 m_Wrappers.Result = m_SharedHeaderFunctions.Companion_Default___.ReadMessageFormatVersion(buffer)
_ = _0_valueOrError0
if (_0_valueOrError0).IsFailure() {
return (_0_valueOrError0).PropagateFailure()
} else {
var _1_version m_SerializeFunctions.SuccessfulRead = (_0_valueOrError0).Extract().(m_SerializeFunctions.SuccessfulRead)
_ = _1_version
var _2_valueOrError1 m_Wrappers.Result = func() m_Wrappers.Result {
var _source0 m_HeaderTypes.MessageFormatVersion = (_1_version).Dtor_data().(m_HeaderTypes.MessageFormatVersion)
_ = _source0
{
if _source0.Is_V1() {
var _3_valueOrError2 m_Wrappers.Result = m_V1HeaderBody.Companion_Default___.ReadV1HeaderBody(buffer, maxEdks, mpl)
_ = _3_valueOrError2
if (_3_valueOrError2).IsFailure() {
return (_3_valueOrError2).PropagateFailure()
} else {
var _4_b m_SerializeFunctions.SuccessfulRead = (_3_valueOrError2).Extract().(m_SerializeFunctions.SuccessfulRead)
_ = _4_b
var _5_body m_HeaderTypes.HeaderBody = (_4_b).Dtor_data().(m_HeaderTypes.HeaderBody)
_ = _5_body
return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_5_body, (_4_b).Dtor_tail()))
}
}
}
{
var _6_valueOrError3 m_Wrappers.Result = m_V2HeaderBody.Companion_Default___.ReadV2HeaderBody(buffer, maxEdks, mpl)
_ = _6_valueOrError3
if (_6_valueOrError3).IsFailure() {
return (_6_valueOrError3).PropagateFailure()
} else {
var _7_b m_SerializeFunctions.SuccessfulRead = (_6_valueOrError3).Extract().(m_SerializeFunctions.SuccessfulRead)
_ = _7_b
var _8_body m_HeaderTypes.HeaderBody = (_7_b).Dtor_data().(m_HeaderTypes.HeaderBody)
_ = _8_body
return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_8_body, (_7_b).Dtor_tail()))
}
}
}()
_ = _2_valueOrError1
if (_2_valueOrError1).IsFailure() {
return (_2_valueOrError1).PropagateFailure()
} else {
var _let_tmp_rhs0 _dafny.Tuple = (_2_valueOrError1).Extract().(_dafny.Tuple)
_ = _let_tmp_rhs0
var _9_body m_HeaderTypes.HeaderBody = (*(_let_tmp_rhs0).IndexInt(0)).(m_HeaderTypes.HeaderBody)
_ = _9_body
var _10_tail m_SerializeFunctions.ReadableBuffer = (*(_let_tmp_rhs0).IndexInt(1)).(m_SerializeFunctions.ReadableBuffer)
_ = _10_tail
var _11_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_9_body).Dtor_contentType()).Is_Framed()) == (((_9_body).Dtor_frameLength()) > (uint32(0))), m_SerializeFunctions.Companion_ReadProblems_.Create_Error_(_dafny.SeqOfString("Frame length must be positive if content is framed")))
_ = _11_valueOrError4
if (_11_valueOrError4).IsFailure() {
return (_11_valueOrError4).PropagateFailure()
} else {
var _12_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_9_body).Dtor_contentType()).Is_NonFramed()) == (((_9_body).Dtor_frameLength()) == (uint32(0))), m_SerializeFunctions.Companion_ReadProblems_.Create_Error_(_dafny.SeqOfString("Frame length must be zero if content is non-framed")))
_ = _12_valueOrError5
if (_12_valueOrError5).IsFailure() {
return (_12_valueOrError5).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(m_SerializeFunctions.Companion_SuccessfulRead_.Create_SuccessfulRead_(_9_body, _10_tail))
}
}
}
}
}