Skip to content

Instantly share code, notes, and snippets.

@tiye
Created January 31, 2024 06:57
Show Gist options
  • Save tiye/e91735c53b8afcb7ba587b03ca71e8ef to your computer and use it in GitHub Desktop.
Save tiye/e91735c53b8afcb7ba587b03ca71e8ef to your computer and use it in GitHub Desktop.
Calcit struct size
type: `calcit::Calcit`: 80 bytes, alignment: 8 bytes
discriminant: 1 bytes
variant `Fn`: 79 bytes
padding: 7 bytes
field `.name`: 16 bytes, alignment: 8 bytes
field `.def_ns`: 16 bytes
field `.id`: 16 bytes
field `.scope`: 8 bytes
field `.args`: 8 bytes
field `.body`: 8 bytes
variant `Symbol`: 71 bytes
padding: 7 bytes
field `.resolved`: 8 bytes, alignment: 8 bytes
field `.location`: 8 bytes
field `.sym`: 16 bytes
field `.ns`: 16 bytes
field `.at_def`: 16 bytes
variant `Macro`: 71 bytes
padding: 7 bytes
field `.name`: 16 bytes, alignment: 8 bytes
field `.def_ns`: 16 bytes
field `.id`: 16 bytes
field `.args`: 8 bytes
field `.body`: 8 bytes
variant `Tuple`: 47 bytes
padding: 7 bytes
field `.0`: 8 bytes, alignment: 8 bytes
field `.1`: 24 bytes
field `.2`: 8 bytes
variant `Recur`: 47 bytes
padding: 7 bytes
field `.0`: 40 bytes, alignment: 8 bytes
variant `List`: 47 bytes
padding: 7 bytes
field `.0`: 40 bytes, alignment: 8 bytes
variant `Set`: 47 bytes
padding: 7 bytes
field `.0`: 40 bytes, alignment: 8 bytes
variant `Map`: 47 bytes
padding: 7 bytes
field `.0`: 40 bytes, alignment: 8 bytes
variant `Record`: 47 bytes
padding: 7 bytes
field `.0`: 16 bytes, alignment: 8 bytes
field `.1`: 8 bytes
field `.2`: 8 bytes
field `.3`: 8 bytes
variant `Ref`: 31 bytes
padding: 7 bytes
field `.0`: 16 bytes, alignment: 8 bytes
field `.1`: 8 bytes
variant `Buffer`: 31 bytes
padding: 7 bytes
field `.0`: 24 bytes, alignment: 8 bytes
variant `CirruQuote`: 31 bytes
padding: 7 bytes
field `.0`: 24 bytes, alignment: 8 bytes
variant `Tag`: 23 bytes
padding: 7 bytes
field `.0`: 16 bytes, alignment: 8 bytes
variant `Str`: 23 bytes
padding: 7 bytes
field `.0`: 16 bytes, alignment: 8 bytes
variant `Thunk`: 23 bytes
padding: 7 bytes
field `.1`: 8 bytes, alignment: 8 bytes
field `.0`: 8 bytes
variant `Syntax`: 23 bytes
field `.0`: 1 bytes
padding: 6 bytes
field `.1`: 16 bytes, alignment: 8 bytes
variant `Method`: 23 bytes
field `.1`: 1 bytes
padding: 6 bytes
field `.0`: 16 bytes, alignment: 8 bytes
variant `RawCode`: 23 bytes
field `.0`: 0 bytes
padding: 7 bytes
field `.1`: 16 bytes, alignment: 8 bytes
variant `Number`: 15 bytes
padding: 7 bytes
field `.0`: 8 bytes, alignment: 8 bytes
variant `Bool`: 1 bytes
field `.0`: 1 bytes
variant `Proc`: 1 bytes
field `.0`: 1 bytes
variant `Nil`: 0 bytes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment