[go: up one dir, main page]

typesize 0.1.14

A library to fetch an accurate estimate of the total memory usage of a value.
Documentation
#![cfg(feature = "details")]

use typesize::{derive::TypeSize, Field, TypeSize};

#[test]
fn test_details() {
    #[derive(Default, TypeSize)]
    struct TestDetails {
        likes: Vec<String>,
        name: String,
        age: u8,
    }

    let test = TestDetails {
        likes: vec![String::from("Cats"), String::from("Foxes")],
        name: String::from("Example"),
        age: 18,
    };

    let test_fields = [
        Field {
            name: "likes",
            collection_items: Some(2),
            size: test.likes.get_size(),
        },
        Field {
            name: "name",
            size: test.name.get_size(),
            collection_items: Some(test.name.len()),
        },
        Field {
            name: "age",
            collection_items: None,
            size: test.age.get_size(),
        },
    ];

    assert_eq!(test.get_size_details(), test_fields);
}