pub struct ClientSubnetEncodingData {
pub client_subnet: u64,
pub subnet_mask: u64,
pub is_ipv6: u64,
}
Expand description
Struct containing 3 values needed for encoding: client_subnet
,
subnet_mask
, and is_ipv6
.
Each property is a u64 because
EncodableData
expects a u64.
client_subnet
should be formatted as a u64 by shifting each octet into an
unsigned integer, applying the subnet mask, then shifting until the number
conforms to 64 bits.
§Examples
use amazon_cloudfront_client_routing_lib::ip::ClientSubnetEncodingData;
// raw values
let client_ip = [1, 2, 3, 4];
let subnet_mask = 24;
let is_ipv6 = 0;
// shift bytes into int
let mut client_subnet = u32::from_be_bytes(client_ip) as u64;
// apply subnet mask
client_subnet &= 0xffffff00;
// conform to 64 bits
client_subnet <<= 32;
let client_subnet_encoding_data = ClientSubnetEncodingData {
client_subnet,
subnet_mask,
is_ipv6,
};
Fields§
§client_subnet: u64
§subnet_mask: u64
§is_ipv6: u64
Auto Trait Implementations§
impl Freeze for ClientSubnetEncodingData
impl RefUnwindSafe for ClientSubnetEncodingData
impl Send for ClientSubnetEncodingData
impl Sync for ClientSubnetEncodingData
impl Unpin for ClientSubnetEncodingData
impl UnwindSafe for ClientSubnetEncodingData
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more