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, )
.tcp(
21, 1234, 1, 26180, )
.ns() .ack(123) .urg(23) .options(&[
TcpOptionElement::Noop,
TcpOptionElement::MaximumSegmentSize(1234),
])
.unwrap();
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);
}