Skip to content

Commit

Permalink
#[inline(always)] → #[inline]
Browse files Browse the repository at this point in the history
whitequark committed Dec 30, 2016
1 parent 553d640 commit 9535809
Showing 7 changed files with 111 additions and 111 deletions.
4 changes: 2 additions & 2 deletions src/socket/tcp.rs
Original file line number Diff line number Diff line change
@@ -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
}
28 changes: 14 additions & 14 deletions src/wire/arp.rs
Original file line number Diff line number Diff line change
@@ -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,37 +84,37 @@ 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]);
Hardware::from(raw)
}

/// 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]);
Protocol::from(raw)
}

/// 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())
16 changes: 8 additions & 8 deletions src/wire/ethernet.rs
Original file line number Diff line number Diff line change
@@ -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]
24 changes: 12 additions & 12 deletions src/wire/icmpv4.rs
Original file line number Diff line number Diff line change
@@ -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();
54 changes: 27 additions & 27 deletions src/wire/ipv4.rs
Original file line number Diff line number Diff line change
@@ -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();
76 changes: 38 additions & 38 deletions src/wire/tcp.rs
Original file line number Diff line number Diff line change
@@ -98,136 +98,136 @@ 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]);
raw & field::FLG_FIN != 0
}

/// 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]);
raw & field::FLG_SYN != 0
}

/// 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]);
raw & field::FLG_RST != 0
}

/// 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]);
raw & field::FLG_PSH != 0
}

/// 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]);
raw & field::FLG_ACK != 0
}

/// 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]);
raw & field::FLG_URG != 0
}

/// 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]);
raw & field::FLG_ECE != 0
}

/// 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]);
raw & field::FLG_CWR != 0
}

/// 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]);
raw & field::FLG_NS != 0
}

/// 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]);
((raw >> 12) * 4) as u8
}

/// 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();
20 changes: 10 additions & 10 deletions src/wire/udp.rs
Original file line number Diff line number Diff line change
@@ -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();

0 comments on commit 9535809

Please sign in to comment.