Struct types

Learn how to define and use structs in Slice.

A struct is a user-defined type that holds a list of fields. For example:

A Slice struct maps to a public C# record struct with the same name. For example:

The mapped C# record struct provides a primary constructor with parameters for all its fields, and also a decoding constructor that constructs a new instance by decoding its fields from a SliceDecoder. The generated Encode method encodes the struct fields with a SliceEncoder.

You can map a Slice struct to a readonly C# struct with the cs::readonly attribute. This attribute does not accept any argument. For example:

slice
[cs::readonly]
compact struct Point { x: int32, y: int32 }
C#
public readonly partial record struct Point
{
public int X { get; init; }
public int Y { get; init; }
...
}

You can also apply cs::readonly to a struct field to map this field to a get-init property.

Was this page helpful?

CookiesYour privacy
This website uses cookies to analyze traffic and improve your experience.
By clicking "Accept," you consent to the use of these cookies. You can learn more about our cookies policy in our Privacy Policy.