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: u64Auto 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