#[inline(always)] → #[inline]

This commit is contained in:
whitequark 2016-12-30 16:55:31 +00:00
parent 287affb447
commit be68066152
7 changed files with 111 additions and 111 deletions

View File

@ -235,13 +235,13 @@ impl<'a> TcpSocket<'a> {
}
/// Return the local endpoint.
#[inline(always)]
#[inline]
pub fn local_endpoint(&self) -> IpEndpoint {
self.local_endpoint
}
/// Return the remote endpoint.
#[inline(always)]
#[inline]
pub fn remote_endpoint(&self) -> IpEndpoint {
self.remote_endpoint
}

View File

@ -36,25 +36,25 @@ mod field {
pub const PLEN: usize = 5;
pub const OPER: Field = 6..8;
#[inline(always)]
#[inline]
pub fn SHA(hardware_len: u8, _protocol_len: u8) -> Field {
let start = OPER.end;
start..(start + hardware_len as usize)
}
#[inline(always)]
#[inline]
pub fn SPA(hardware_len: u8, protocol_len: u8) -> Field {
let start = SHA(hardware_len, protocol_len).end;
start..(start + protocol_len as usize)
}
#[inline(always)]
#[inline]
pub fn THA(hardware_len: u8, protocol_len: u8) -> Field {
let start = SPA(hardware_len, protocol_len).end;
start..(start + hardware_len as usize)
}
#[inline(always)]
#[inline]
pub fn TPA(hardware_len: u8, protocol_len: u8) -> Field {
let start = THA(hardware_len, protocol_len).end;
start..(start + protocol_len as usize)
@ -84,7 +84,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the hardware type field.
#[inline(always)]
#[inline]
pub fn hardware_type(&self) -> Hardware {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::HTYPE]);
@ -92,7 +92,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the protocol type field.
#[inline(always)]
#[inline]
pub fn protocol_type(&self) -> Protocol {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::PTYPE]);
@ -100,21 +100,21 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the hardware length field.
#[inline(always)]
#[inline]
pub fn hardware_len(&self) -> u8 {
let data = self.buffer.as_ref();
data[field::HLEN]
}
/// Return the protocol length field.
#[inline(always)]
#[inline]
pub fn protocol_len(&self) -> u8 {
let data = self.buffer.as_ref();
data[field::PLEN]
}
/// Return the operation field.
#[inline(always)]
#[inline]
pub fn operation(&self) -> Operation {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::OPER]);
@ -148,35 +148,35 @@ impl<T: AsRef<[u8]>> Packet<T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
/// Set the hardware type field.
#[inline(always)]
#[inline]
pub fn set_hardware_type(&mut self, value: Hardware) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::HTYPE], value.into())
}
/// Set the protocol type field.
#[inline(always)]
#[inline]
pub fn set_protocol_type(&mut self, value: Protocol) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::PTYPE], value.into())
}
/// Set the hardware length field.
#[inline(always)]
#[inline]
pub fn set_hardware_len(&mut self, value: u8) {
let data = self.buffer.as_mut();
data[field::HLEN] = value
}
/// Set the protocol length field.
#[inline(always)]
#[inline]
pub fn set_protocol_len(&mut self, value: u8) {
let data = self.buffer.as_mut();
data[field::PLEN] = value
}
/// Set the operation field.
#[inline(always)]
#[inline]
pub fn set_operation(&mut self, value: Operation) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::OPER], value.into())

View File

@ -103,21 +103,21 @@ impl<T: AsRef<[u8]>> Frame<T> {
}
/// Return the destination address field.
#[inline(always)]
#[inline]
pub fn dst_addr(&self) -> Address {
let data = self.buffer.as_ref();
Address::from_bytes(&data[field::DESTINATION])
}
/// Return the source address field.
#[inline(always)]
#[inline]
pub fn src_addr(&self) -> Address {
let data = self.buffer.as_ref();
Address::from_bytes(&data[field::SOURCE])
}
/// Return the EtherType field, without checking for 802.1Q.
#[inline(always)]
#[inline]
pub fn ethertype(&self) -> EtherType {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::ETHERTYPE]);
@ -127,7 +127,7 @@ impl<T: AsRef<[u8]>> Frame<T> {
impl<'a, T: AsRef<[u8]> + ?Sized> Frame<&'a T> {
/// Return a pointer to the payload, without checking for 802.1Q.
#[inline(always)]
#[inline]
pub fn payload(&self) -> &'a [u8] {
let data = self.buffer.as_ref();
&data[field::PAYLOAD]
@ -136,21 +136,21 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Frame<&'a T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Frame<T> {
/// Set the destination address field.
#[inline(always)]
#[inline]
pub fn set_dst_addr(&mut self, value: Address) {
let data = self.buffer.as_mut();
data[field::DESTINATION].copy_from_slice(value.as_bytes())
}
/// Set the source address field.
#[inline(always)]
#[inline]
pub fn set_src_addr(&mut self, value: Address) {
let data = self.buffer.as_mut();
data[field::SOURCE].copy_from_slice(value.as_bytes())
}
/// Set the EtherType field.
#[inline(always)]
#[inline]
pub fn set_ethertype(&mut self, value: EtherType) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::ETHERTYPE], value.into())
@ -159,7 +159,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Frame<T> {
impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Frame<&'a mut T> {
/// Return a mutable pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload_mut(&mut self) -> &mut [u8] {
let data = self.buffer.as_mut();
&mut data[field::PAYLOAD]

View File

@ -206,21 +206,21 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the message type field.
#[inline(always)]
#[inline]
pub fn msg_type(&self) -> Message {
let data = self.buffer.as_ref();
Message::from(data[field::TYPE])
}
/// Return the message code field.
#[inline(always)]
#[inline]
pub fn msg_code(&self) -> u8 {
let data = self.buffer.as_ref();
data[field::CODE]
}
/// Return the checksum field.
#[inline(always)]
#[inline]
pub fn checksum(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::CHECKSUM])
@ -230,7 +230,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
///
/// # Panics
/// This function may panic if this packet is not an echo request or reply packet.
#[inline(always)]
#[inline]
pub fn echo_ident(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::ECHO_IDENT])
@ -240,7 +240,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
///
/// # Panics
/// This function may panic if this packet is not an echo request or reply packet.
#[inline(always)]
#[inline]
pub fn echo_seq_no(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::ECHO_SEQNO])
@ -266,7 +266,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
/// Return a pointer to the type-specific data.
#[inline(always)]
#[inline]
pub fn data(&self) -> &'a [u8] {
let data = self.buffer.as_ref();
&data[self.header_len()..]
@ -275,21 +275,21 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
/// Set the message type field.
#[inline(always)]
#[inline]
pub fn set_msg_type(&mut self, value: Message) {
let mut data = self.buffer.as_mut();
data[field::TYPE] = value.into()
}
/// Set the message code field.
#[inline(always)]
#[inline]
pub fn set_msg_code(&mut self, value: u8) {
let mut data = self.buffer.as_mut();
data[field::CODE] = value
}
/// Set the checksum field.
#[inline(always)]
#[inline]
pub fn set_checksum(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::CHECKSUM], value)
@ -299,7 +299,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
///
/// # Panics
/// This function may panic if this packet is not an echo request or reply packet.
#[inline(always)]
#[inline]
pub fn set_echo_ident(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::ECHO_IDENT], value)
@ -309,7 +309,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
///
/// # Panics
/// This function may panic if this packet is not an echo request or reply packet.
#[inline(always)]
#[inline]
pub fn set_echo_seq_no(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::ECHO_SEQNO], value)
@ -328,7 +328,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Packet<&'a mut T> {
/// Return a mutable pointer to the type-specific data.
#[inline(always)]
#[inline]
pub fn data_mut(&mut self) -> &mut [u8] {
let range = self.header_len()..;
let mut data = self.buffer.as_mut();

View File

@ -113,14 +113,14 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the version field.
#[inline(always)]
#[inline]
pub fn version(&self) -> u8 {
let data = self.buffer.as_ref();
data[field::VER_IHL] >> 4
}
/// Return the header length, in octets.
#[inline(always)]
#[inline]
pub fn header_len(&self) -> u8 {
let data = self.buffer.as_ref();
(data[field::VER_IHL] & 0x0f) * 4
@ -139,70 +139,70 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the total length field.
#[inline(always)]
#[inline]
pub fn total_len(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::LENGTH])
}
/// Return the fragment identification field.
#[inline(always)]
#[inline]
pub fn ident(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::IDENT])
}
/// Return the "don't fragment" flag.
#[inline(always)]
#[inline]
pub fn dont_frag(&self) -> bool {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::FLG_OFF]) & 0x4000 != 0
}
/// Return the "more fragments" flag.
#[inline(always)]
#[inline]
pub fn more_frags(&self) -> bool {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::FLG_OFF]) & 0x2000 != 0
}
/// Return the fragment offset, in octets.
#[inline(always)]
#[inline]
pub fn frag_offset(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::FLG_OFF]) << 3
}
/// Return the time to live field.
#[inline(always)]
#[inline]
pub fn ttl(&self) -> u8 {
let data = self.buffer.as_ref();
data[field::TTL]
}
/// Return the protocol field.
#[inline(always)]
#[inline]
pub fn protocol(&self) -> Protocol {
let data = self.buffer.as_ref();
Protocol::from(data[field::PROTOCOL])
}
/// Return the header checksum field.
#[inline(always)]
#[inline]
pub fn checksum(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::CHECKSUM])
}
/// Return the source address field.
#[inline(always)]
#[inline]
pub fn src_addr(&self) -> Address {
let data = self.buffer.as_ref();
Address::from_bytes(&data[field::SRC_ADDR])
}
/// Return the destination address field.
#[inline(always)]
#[inline]
pub fn dst_addr(&self) -> Address {
let data = self.buffer.as_ref();
Address::from_bytes(&data[field::DST_ADDR])
@ -217,7 +217,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
/// Return a pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload(&self) -> &'a [u8] {
let range = self.header_len() as usize;
let data = self.buffer.as_ref();
@ -227,14 +227,14 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
/// Set the version field.
#[inline(always)]
#[inline]
pub fn set_version(&mut self, value: u8) {
let data = self.buffer.as_mut();
data[field::VER_IHL] = (data[field::VER_IHL] & !0xf0) | (value << 4);
}
/// Set the header length, in octets.
#[inline(always)]
#[inline]
pub fn set_header_len(&mut self, value: u8) {
let data = self.buffer.as_mut();
data[field::VER_IHL] = (data[field::VER_IHL] & !0x0f) | ((value / 4) & 0x0f);
@ -253,21 +253,21 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the total length field.
#[inline(always)]
#[inline]
pub fn set_total_len(&mut self, value: u16) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::LENGTH], value)
}
/// Set the fragment identification field.
#[inline(always)]
#[inline]
pub fn set_ident(&mut self, value: u16) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::IDENT], value)
}
/// Clear the entire flags field.
#[inline(always)]
#[inline]
pub fn clear_flags(&mut self) {
let data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLG_OFF]);
@ -276,7 +276,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the "don't fragment" flag.
#[inline(always)]
#[inline]
pub fn set_dont_frag(&mut self, value: bool) {
let data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLG_OFF]);
@ -285,7 +285,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the "more fragments" flag.
#[inline(always)]
#[inline]
pub fn set_more_frags(&mut self, value: bool) {
let data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLG_OFF]);
@ -294,7 +294,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the fragment offset, in octets.
#[inline(always)]
#[inline]
pub fn set_frag_offset(&mut self, value: u16) {
let data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLG_OFF]);
@ -303,35 +303,35 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the time to live field.
#[inline(always)]
#[inline]
pub fn set_ttl(&mut self, value: u8) {
let data = self.buffer.as_mut();
data[field::TTL] = value
}
/// Set the protocol field.
#[inline(always)]
#[inline]
pub fn set_protocol(&mut self, value: Protocol) {
let data = self.buffer.as_mut();
data[field::PROTOCOL] = value.into()
}
/// Set the header checksum field.
#[inline(always)]
#[inline]
pub fn set_checksum(&mut self, value: u16) {
let data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::CHECKSUM], value)
}
/// Set the source address field.
#[inline(always)]
#[inline]
pub fn set_src_addr(&mut self, value: Address) {
let data = self.buffer.as_mut();
data[field::SRC_ADDR].copy_from_slice(value.as_bytes())
}
/// Set the destination address field.
#[inline(always)]
#[inline]
pub fn set_dst_addr(&mut self, value: Address) {
let data = self.buffer.as_mut();
data[field::DST_ADDR].copy_from_slice(value.as_bytes())
@ -350,7 +350,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Packet<&'a mut T> {
/// Return a mutable pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload_mut(&mut self) -> &mut [u8] {
let range = self.header_len() as usize..;
let data = self.buffer.as_mut();

View File

@ -98,35 +98,35 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the source port field.
#[inline(always)]
#[inline]
pub fn src_port(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::SRC_PORT])
}
/// Return the destination port field.
#[inline(always)]
#[inline]
pub fn dst_port(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::DST_PORT])
}
/// Return the sequence number field.
#[inline(always)]
#[inline]
pub fn seq_number(&self) -> SeqNumber {
let data = self.buffer.as_ref();
SeqNumber(NetworkEndian::read_i32(&data[field::SEQ_NUM]))
}
/// Return the acknowledgement number field.
#[inline(always)]
#[inline]
pub fn ack_number(&self) -> SeqNumber {
let data = self.buffer.as_ref();
SeqNumber(NetworkEndian::read_i32(&data[field::ACK_NUM]))
}
/// Return the FIN flag.
#[inline(always)]
#[inline]
pub fn fin(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -134,7 +134,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the SYN flag.
#[inline(always)]
#[inline]
pub fn syn(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -142,7 +142,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the RST flag.
#[inline(always)]
#[inline]
pub fn rst(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -150,7 +150,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the PSH flag.
#[inline(always)]
#[inline]
pub fn psh(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -158,7 +158,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the ACK flag.
#[inline(always)]
#[inline]
pub fn ack(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -166,7 +166,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the URG flag.
#[inline(always)]
#[inline]
pub fn urg(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -174,7 +174,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the ECE flag.
#[inline(always)]
#[inline]
pub fn ece(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -182,7 +182,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the CWR flag.
#[inline(always)]
#[inline]
pub fn cwr(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -190,7 +190,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the NS flag.
#[inline(always)]
#[inline]
pub fn ns(&self) -> bool {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -198,7 +198,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the header length, in octets.
#[inline(always)]
#[inline]
pub fn header_len(&self) -> u8 {
let data = self.buffer.as_ref();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -206,28 +206,28 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the window size field.
#[inline(always)]
#[inline]
pub fn window_len(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::WIN_SIZE])
}
/// Return the checksum field.
#[inline(always)]
#[inline]
pub fn checksum(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::CHECKSUM])
}
/// Return the urgent pointer field.
#[inline(always)]
#[inline]
pub fn urgent_at(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::URGENT])
}
/// Return the length of the segment, in terms of sequence space.
#[inline(always)]
#[inline]
pub fn segment_len(&self) -> usize {
let data = self.buffer.as_ref();
let mut length = data.len() - self.header_len() as usize;
@ -253,7 +253,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
/// Return a pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload(&self) -> &'a [u8] {
let header_len = self.header_len() as usize;
let data = self.buffer.as_ref();
@ -263,35 +263,35 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
/// Set the source port field.
#[inline(always)]
#[inline]
pub fn set_src_port(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::SRC_PORT], value)
}
/// Set the destination port field.
#[inline(always)]
#[inline]
pub fn set_dst_port(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::DST_PORT], value)
}
/// Set the sequence number field.
#[inline(always)]
#[inline]
pub fn set_seq_number(&mut self, value: SeqNumber) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_i32(&mut data[field::SEQ_NUM], value.0)
}
/// Set the acknowledgement number field.
#[inline(always)]
#[inline]
pub fn set_ack_number(&mut self, value: SeqNumber) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_i32(&mut data[field::ACK_NUM], value.0)
}
/// Clear the entire flags field.
#[inline(always)]
#[inline]
pub fn clear_flags(&mut self) {
let data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -300,7 +300,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the FIN flag.
#[inline(always)]
#[inline]
pub fn set_fin(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -309,7 +309,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the SYN flag.
#[inline(always)]
#[inline]
pub fn set_syn(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -318,7 +318,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the RST flag.
#[inline(always)]
#[inline]
pub fn set_rst(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -327,7 +327,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the PSH flag.
#[inline(always)]
#[inline]
pub fn set_psh(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -336,7 +336,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the ACK flag.
#[inline(always)]
#[inline]
pub fn set_ack(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -345,7 +345,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the URG flag.
#[inline(always)]
#[inline]
pub fn set_urg(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -354,7 +354,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the ECE flag.
#[inline(always)]
#[inline]
pub fn set_ece(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -363,7 +363,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the CWR flag.
#[inline(always)]
#[inline]
pub fn set_cwr(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -372,7 +372,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the NS flag.
#[inline(always)]
#[inline]
pub fn set_ns(&mut self, value: bool) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -381,7 +381,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Set the header length, in octets.
#[inline(always)]
#[inline]
pub fn set_header_len(&mut self, value: u8) {
let mut data = self.buffer.as_mut();
let raw = NetworkEndian::read_u16(&data[field::FLAGS]);
@ -390,21 +390,21 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
}
/// Return the window size field.
#[inline(always)]
#[inline]
pub fn set_window_len(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::WIN_SIZE], value)
}
/// Set the checksum field.
#[inline(always)]
#[inline]
pub fn set_checksum(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::CHECKSUM], value)
}
/// Set the urgent pointer field.
#[inline(always)]
#[inline]
pub fn set_urgent_at(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::URGENT], value)
@ -431,7 +431,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Packet<&'a mut T> {
/// Return a mutable pointer to the payload data.
#[inline(always)]
#[inline]
pub fn payload_mut(&mut self) -> &mut [u8] {
let header_len = self.header_len() as usize;
let mut data = self.buffer.as_mut();

View File

@ -49,28 +49,28 @@ impl<T: AsRef<[u8]>> Packet<T> {
}
/// Return the source port field.
#[inline(always)]
#[inline]
pub fn src_port(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::SRC_PORT])
}
/// Return the destination port field.
#[inline(always)]
#[inline]
pub fn dst_port(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::DST_PORT])
}
/// Return the length field.
#[inline(always)]
#[inline]
pub fn len(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::LENGTH])
}
/// Return the checksum field.
#[inline(always)]
#[inline]
pub fn checksum(&self) -> u16 {
let data = self.buffer.as_ref();
NetworkEndian::read_u16(&data[field::CHECKSUM])
@ -93,7 +93,7 @@ impl<T: AsRef<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
/// Return a pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload(&self) -> &'a [u8] {
let length = self.len();
let data = self.buffer.as_ref();
@ -103,28 +103,28 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Packet<&'a T> {
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
/// Set the source port field.
#[inline(always)]
#[inline]
pub fn set_src_port(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::SRC_PORT], value)
}
/// Set the destination port field.
#[inline(always)]
#[inline]
pub fn set_dst_port(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::DST_PORT], value)
}
/// Set the length field.
#[inline(always)]
#[inline]
pub fn set_len(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::LENGTH], value)
}
/// Set the checksum field.
#[inline(always)]
#[inline]
pub fn set_checksum(&mut self, value: u16) {
let mut data = self.buffer.as_mut();
NetworkEndian::write_u16(&mut data[field::CHECKSUM], value)
@ -151,7 +151,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T> {
impl<'a, T: AsRef<[u8]> + AsMut<[u8]> + ?Sized> Packet<&'a mut T> {
/// Return a mutable pointer to the payload.
#[inline(always)]
#[inline]
pub fn payload_mut(&mut self) -> &mut [u8] {
let length = self.len();
let mut data = self.buffer.as_mut();