{"id":17155135,"url":"https://github.com/davidrusu/cargo-typesize","last_synced_at":"2025-04-13T13:02:53.654Z","repository":{"id":48998459,"uuid":"517127045","full_name":"davidrusu/cargo-typesize","owner":"davidrusu","description":"List size of types in a Rust crate","archived":false,"fork":false,"pushed_at":"2023-12-30T19:45:43.000Z","size":16,"stargazers_count":27,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T04:07:43.374Z","etag":null,"topics":["rust","static-analysis"],"latest_commit_sha":null,"homepage":"http://www.davidrusu.com/blog#cargo-typesize","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidrusu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-23T17:50:47.000Z","updated_at":"2024-07-11T02:41:13.000Z","dependencies_parsed_at":"2024-10-14T22:01:30.352Z","dependency_job_id":null,"html_url":"https://github.com/davidrusu/cargo-typesize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrusu%2Fcargo-typesize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrusu%2Fcargo-typesize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrusu%2Fcargo-typesize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrusu%2Fcargo-typesize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidrusu","download_url":"https://codeload.github.com/davidrusu/cargo-typesize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717251,"owners_count":21150389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","static-analysis"],"created_at":"2024-10-14T21:50:46.347Z","updated_at":"2025-04-13T13:02:53.610Z","avatar_url":"https://github.com/davidrusu.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cargo typesize\n\nList the size of all types in a Rust crate\n\n## Install + Usage\n\nCargo typesize depends on nightly for building and running, this is a restriction imposed by rustc to prevent linking against the rustc compiler on stable.\n\n```\n# Add the necessary components to the nightly compiler\nrustup default nightly\nrustup component add rust-src rustc-dev llvm-tools-preview\n```\n\n```\n# Install cargo-typesize using the nightly compiler\ncargo +nightly install cargo-typesize\n```\n\nThen make sure all invocations are done under nightly:\n\n```\ncargo +nightly typesize\n```\n\n\n## Sample output\nOutput of running `cargo typesize` on [sn_consensus](https://github.com/maidsafe/sn_consensus)\n\n```\nInspecting layout of lib: sn_consensus\n  0\t() - src/decision.rs:9:56: 9:65 (#247)\n  0\t() - src/decision.rs:9:67: 9:78 (#258)\n  0\t() - src/fault.rs:19:56: 19:65 (#340)\n  0\t() - src/fault.rs:19:67: 19:78 (#353)\n  0\t() - src/sn_membership.rs:23:55: 23:64 (#408)\n  0\t() - src/sn_membership.rs:23:66: 23:77 (#411)\n  0\t() - src/vote.rs:13:49: 13:58 (#458)\n  0\t() - src/vote.rs:13:60: 13:71 (#467)\n  0\t() - src/vote.rs:186:49: 186:58 (#545)\n  0\t() - src/vote.rs:186:60: 186:71 (#556)\n  0\t() - src/vote.rs:88:49: 88:58 (#499)\n  0\t() - src/vote.rs:88:60: 88:71 (#510)\n  0\t\u003cfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__FieldVisitor - src/fault.rs:19:67: 19:78 (#353)\n  0\t\u003cfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__Visitor\u003c'de, T\u003e - src/fault.rs:19:67: 19:78 (#353)\n  0\t\u003cvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__FieldVisitor - src/vote.rs:13:60: 13:71 (#467)\n  0\t\u003cvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__Visitor\u003c'de, T\u003e - src/vote.rs:13:60: 13:71 (#467)\n  0\tdecision::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for decision::Decision\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/decision.rs:9:67: 9:78 (#258)\n  0\tdecision::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for decision::Decision\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/decision.rs:9:67: 9:78 (#258)\n  0\tfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/fault.rs:19:67: 19:78 (#353)\n  0\tfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/fault.rs:19:67: 19:78 (#353)\n  0\tsn_membership::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for sn_membership::Reconfig\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/sn_membership.rs:23:66: 23:77 (#411)\n  0\tsn_membership::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for sn_membership::Reconfig\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/sn_membership.rs:23:66: 23:77 (#411)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/vote.rs:13:60: 13:71 (#467)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/vote.rs:13:60: 13:71 (#467)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::SignedVote\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/vote.rs:186:60: 186:71 (#556)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::SignedVote\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/vote.rs:186:60: 186:71 (#556)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Vote\u003cT\u003e\u003e::deserialize::__FieldVisitor - src/vote.rs:88:60: 88:71 (#510)\n  0\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Vote\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e - src/vote.rs:88:60: 88:71 (#510)\n  1\t\u003cfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__Field - src/fault.rs:19:67: 19:78 (#353)\n  1\t\u003cvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__Visitor\u003c'de, T\u003e as decision::_::_serde::de::Visitor\u003c'de\u003e\u003e::visit_enum::__Field - src/vote.rs:13:60: 13:71 (#467)\n  1\tdecision::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for decision::Decision\u003cT\u003e\u003e::deserialize::__Field - src/decision.rs:9:67: 9:78 (#258)\n  1\tfault::FaultError - src/fault.rs:8:1: 17:2 (#0)\n  1\tfault::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for fault::Fault\u003cT\u003e\u003e::deserialize::__Field - src/fault.rs:19:67: 19:78 (#353)\n  1\tsn_membership::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for sn_membership::Reconfig\u003cT\u003e\u003e::deserialize::__Field - src/sn_membership.rs:23:66: 23:77 (#411)\n  1\tu8 - src/lib.rs:37:1: 37:22 (#0)\n  1\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Ballot\u003cT\u003e\u003e::deserialize::__Field - src/vote.rs:13:60: 13:71 (#467)\n  1\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::SignedVote\u003cT\u003e\u003e::deserialize::__Field - src/vote.rs:186:60: 186:71 (#556)\n  1\tvote::_::\u003cimpl decision::_::_serde::Deserialize\u003c'de\u003e for vote::Vote\u003cT\u003e\u003e::deserialize::__Field - src/vote.rs:88:60: 88:71 (#510)\n  8\tu64 - src/sn_handover.rs:11:1: 11:32 (#0)\n  8\tu64 - src/sn_membership.rs:13:1: 13:27 (#0)\n  8\tusize - src/sn_membership.rs:12:1: 12:35 (#0)\n 16\t\u0026'static [\u0026'static str] - src/decision.rs:9:67: 9:78 (#258)\n 16\t\u0026'static [\u0026'static str] - src/fault.rs:19:67: 19:78 (#353)\n 16\t\u0026'static [\u0026'static str] - src/sn_membership.rs:23:66: 23:77 (#411)\n 16\t\u0026'static [\u0026'static str] - src/vote.rs:13:60: 13:71 (#467)\n 16\t\u0026'static [\u0026'static str] - src/vote.rs:186:60: 186:71 (#556)\n 16\t\u0026'static [\u0026'static str] - src/vote.rs:88:60: 88:71 (#510)\n 24\terror::Error - src/error.rs:7:1: 62:2 (#0)\n 32\tvote_count::SuperMajorityCount - src/vote_count.rs:60:1: 64:2 (#0)\n 48\tvote_count::Candidate\u003cT\u003e - src/vote_count.rs:12:1: 17:2 (#0)\n 72\tvote_count::VoteCount\u003cT\u003e - src/vote_count.rs:67:1: 71:2 (#0)\n336\tdecision::Decision\u003cT\u003e - src/decision.rs:10:1: 14:2 (#0)\n488\tconsensus::Consensus\u003cT\u003e - src/consensus.rs:12:1: 20:2 (#0)\n496\tsn_handover::Handover\u003cT\u003e - src/sn_handover.rs:14:1: 17:2 (#0)\n544\tsn_membership::Membership\u003cT\u003e - src/sn_membership.rs:16:1: 21:2 (#0)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidrusu%2Fcargo-typesize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidrusu%2Fcargo-typesize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidrusu%2Fcargo-typesize/lists"}