Soteria_rust_lib.Layout_commonmodule Tag_layout : sig ... endLayout of enum tags in memory. Note tags are distinct from discriminants: a discriminant is user specified and is what Rvalue.Discriminant returns, whereas a tag is specific to variant layouts, and may be of smaller size than the discriminant, or not be encoded at all if it is the untagged variant of a niche-optimised enum.
module Fields_shape : sig ... endWe use a custom type for the member offsets for layouts; this allows us to use a more efficient representation for arrays T; N, that doesn't require N offsets.
type t = {size : Soteria_rust_lib.Typed.T.sint Typed.t;align : Soteria_rust_lib.Typed.T.nonzero Typed.t;uninhabited : bool;fields : Fields_shape.t;}val pp :
Ppx_deriving_runtime.Format.formatter ->
t ->
Ppx_deriving_runtime.unitval show : t -> Ppx_deriving_runtime.stringval iter_vars :
t ->
((Soteria.Bv_values.Svalue.Var.t * 'a Typed.ty) -> unit) ->
unit