(&self, code: u8, bytes: &[u8], length: usize)
| 84 | } |
| 85 | |
| 86 | fn handle_packet(&self, code: u8, bytes: &[u8], length: usize) -> Result<BackendMessage> { |
| 87 | let mut reader = BufferReader::default(); |
| 88 | reader.set_buffer(0, bytes); |
| 89 | |
| 90 | match code { |
| 91 | CODE_BIND_COMPLETE => Ok(BackendMessage::BindComplete { length: 5 }), |
| 92 | CODE_PARSE_COMPLETE => Ok(BackendMessage::ParseComplete { length: 5 }), |
| 93 | CODE_CLOSE_COMPLETE => Ok(BackendMessage::CloseComplete { length: 5 }), |
| 94 | CODE_NO_DATA => Ok(BackendMessage::NoData { length: 5 }), |
| 95 | CODE_PORTAL_SUSPENDED => Ok(BackendMessage::PortalSuspended { length: 5 }), |
| 96 | CODE_COPY_DONE => Ok(BackendMessage::CopyDone { length: 4 }), |
| 97 | CODE_REPLICATION_START => Ok(BackendMessage::ReplicationStart { length: 4 }), |
| 98 | CODE_EMPTY_QUERY => Ok(BackendMessage::EmptyQuery { length: 4 }), |
| 99 | CODE_COMMAND_COMPLETE => self.parse_command_complete(length, &mut reader), |
| 100 | CODE_READY_FOR_QUERY => self.parse_ready_for_query(length, &mut reader), |
| 101 | CODE_DATA_ROW => self.parse_data_row(length, &mut reader), |
| 102 | CODE_NOTIFICATION_RESPONSE => self.parse_notification(length, &mut reader), |
| 103 | CODE_PARAMETER_STATUS => self.parse_parameter_status(length, &mut reader), |
| 104 | CODE_BACKEND_KEY_DATA => self.parse_backend_key_data(length, &mut reader), |
| 105 | CODE_ERROR => self.parse_error_message(length, &mut reader), |
| 106 | CODE_NOTICE => self.parse_notice_message(length, &mut reader), |
| 107 | CODE_ROW_DESCRIPTION => self.parse_row_description(length, &mut reader), |
| 108 | CODE_PARAMETER_DESCRIPTION => self.parse_parameter_description(length, &mut reader), |
| 109 | CODE_COPY_IN => { |
| 110 | self.parse_copy_message(length, &mut reader, MessageName::CopyInResponse) |
| 111 | } |
| 112 | CODE_COPY_OUT => { |
| 113 | self.parse_copy_message(length, &mut reader, MessageName::CopyOutResponse) |
| 114 | } |
| 115 | CODE_COPY_DATA => self.parse_copy_data(length, bytes), |
| 116 | CODE_AUTHENTICATION => self.parse_authentication(length, &mut reader), |
| 117 | _ => Err(anyhow!("received invalid response: {:x}", code)), |
| 118 | } |
| 119 | } |
| 120 | |
| 121 | fn parse_ready_for_query( |
| 122 | &self, |
no test coverage detected