sark-core 0.9.0

the L7 layer for dope
Documentation
use std::mem::size_of;

use sark_core::http::{
    FixedResponseInner, HeaderItemInner, HeadersInner, MonoResponseInner, StaticResponseInner,
};

#[test]
fn exact_header_capacity_removes_unused_entries() {
    let item = size_of::<HeaderItemInner<'static>>();

    assert_eq!(
        size_of::<HeadersInner<'static, 4>>() - size_of::<HeadersInner<'static, 2>>(),
        2 * item
    );
    assert_eq!(
        size_of::<HeadersInner<'static, 2>>() - size_of::<HeadersInner<'static, 0>>(),
        2 * item
    );
    assert_eq!(
        size_of::<FixedResponseInner<'static, 4>>() - size_of::<FixedResponseInner<'static, 2>>(),
        2 * item
    );
    assert_eq!(
        size_of::<StaticResponseInner<'static, 4>>() - size_of::<StaticResponseInner<'static, 2>>(),
        2 * item
    );
}

#[test]
fn static_response_does_not_pay_for_hot_body_erasure() {
    assert!(
        size_of::<StaticResponseInner<'static, 2>>() < size_of::<MonoResponseInner<'static, 2>>()
    );
}

#[test]
fn item_array_defines_the_active_length() {
    let empty = HeadersInner::<'static, 0>::from_items([]);
    assert!(empty.is_empty());
    assert_eq!(empty.len(), 0);
}