#struct #size #ensure #alignment #macro #anchor #solana

macro aligned-sized

A macro which ensures the alignment and calculates the size of a struct

13 releases (2 stable)

1.1.0 Sep 20, 2024
0.6.0 Sep 8, 2024
0.3.0 Jul 23, 2024
0.1.0 Nov 1, 2023

#49 in #ensure

Download history 57/week @ 2024-10-01 57/week @ 2024-10-08 73/week @ 2024-10-15 33/week @ 2024-10-22 42/week @ 2024-10-29 91/week @ 2024-11-05 216/week @ 2024-11-12 186/week @ 2024-11-19 92/week @ 2024-11-26 153/week @ 2024-12-03 314/week @ 2024-12-10 326/week @ 2024-12-17 139/week @ 2024-12-24 116/week @ 2024-12-31 61/week @ 2025-01-07 202/week @ 2025-01-14

616 downloads per month
Used in 16 crates (9 directly)

Apache-2.0

10KB
169 lines

aligned-sized

A macro which ensures the alignment and calculates the size of a struct


lib.rs:

aligned-sized is a library providing the aligned_sized macro, which:

  • Calculates a size of the given struct and provides a LEN constant with that value.

Future plans:

  • Ensuring that the struct is aligned, adding padding fields when neccessary.

Motivation

Calculating the size of a struct is often a necessity when developing project in Rust, in particular:

This library provides a macro which automatically calculates the size, also taking in account factors which make a straightforward use of core::mem::size_of::<T> for the whole struct impossible (discriminants, vectors etc.).

Dependencies

~205–640KB
~15K SLoC