use etherparse::*;
fn main() {
let builder = PacketBuilder::ethernet2(
[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], )
.ipv4(
[192, 168, 1, 1], [192, 168, 1, 2], 20, )
.udp(
21, 1234, );
let payload = [1, 2, 3, 4, 5, 6, 7, 8];
let mut result = Vec::<u8>::with_capacity(builder.size(payload.len()));
builder.write(&mut result, &payload).unwrap();
println!("{:?}", result);
}