fn handle_control_frame(&mut self, f: HFrame) -> Res<Option<HFrame>> {
        qinfo!([self], "Handle a control frame {:?}", f);
        if !matches!(f, HFrame::Settings { .. })
            && !matches!(
                self.settings_state,
                Http3RemoteSettingsState::Received { .. }
            )
        {
            return Err(Error::HttpMissingSettings);
        }
        match f {
            HFrame::Settings { settings } => {
                self.handle_settings(settings)?;
                Ok(None)
            }
            HFrame::Goaway { .. }
            | HFrame::MaxPushId { .. }
            | HFrame::CancelPush { .. }
            | HFrame::PriorityUpdateRequest { .. }
            | HFrame::PriorityUpdatePush { .. } => Ok(Some(f)),
            _ => Err(Error::HttpFrameUnexpected),
        }
    }
// If the control stream has received frames MaxPushId or Goaway which handling is specific to
// the client and server, we must give them to the specific client/server handler.
If the control stream has received frames MaxPushId or Goaway which handling is specific to
the client and server, we must give them to the specific client/server handler.
If the control stream has received frames MaxPushId or Goaway which handling is specific to the client and server we must give them to the specific client / server handler .
fn handle_control_frame(&mut self, f: HFrame) -> Res<Option<HFrame>> {
        qinfo!([self], "Handle a control frame {:?}", f);
        if !matches!(f, HFrame::Settings { .. })
            && !matches!(
                self.settings_state,
                Http3RemoteSettingsState::Received { .. }
            )
        {
            return Err(Error::HttpMissingSettings);
        }
        match f {
            HFrame::Settings { settings } => {
                self.handle_settings(settings)?;
                Ok(None)
            }
            HFrame::Goaway { .. }
            | HFrame::MaxPushId { .. }
            | HFrame::CancelPush { .. }
            | HFrame::PriorityUpdateRequest { .. }
            | HFrame::PriorityUpdatePush { .. } => Ok(Some(f)),
            _ => Err(Error::HttpFrameUnexpected),
        }
    }
fn handle_control_frame ( & mut self , f : HFrame ) -> Res < Option < HFrame > > { qinfo ! ( [ self ] " " f ) ; if ! matches ! ( f HFrame Settings { } ) && ! matches ! ( self settings_state Http3RemoteSettingsState Received { } ) { return Err ( Error :: HttpMissingSettings ) ; } match f { HFrame :: Settings { settings } => { self . handle_settings ( settings ) ? ; Ok ( None ) } HFrame :: Goaway { .. } | HFrame :: MaxPushId { .. } | HFrame :: CancelPush { .. } | HFrame :: PriorityUpdateRequest { .. } | HFrame :: PriorityUpdatePush { .. } => Ok ( Some ( f ) ) , _ => Err ( Error :: HttpFrameUnexpected ) , } }
If the control stream has received frames MaxPushId or Goaway which handling is specific to
the client and server, we must give them to the specific client/server handler.
If the control stream has received frames MaxPushId or Goaway which handling is specific to the client and server we must give them to the specific client / server handler .
&mut self
f
HFrame