Module java.base
Package java.lang.foreign

# Interface UnionLayout

All Superinterfaces:
  `GroupLayoutPREVIEW`, `MemoryLayoutPREVIEW`

public sealed interface UnionLayout extends GroupLayoutPREVIEW
`UnionLayout` is a preview API of the Java platform.
Programs can only use `UnionLayout` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A group layout whose member layouts are laid out at the same starting offset.

Implementation Requirements:
  Implementing classes are immutable, thread-safe and value-based.
Since:
  20

- ## Nested Class Summary

  ## Nested classes/interfaces declared in interface java.lang.foreign.MemoryLayoutPREVIEW

  `MemoryLayout.PathElementPREVIEW`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `UnionLayoutPREVIEW`
  `withBitAlignment(long bitAlignment)`
  Returns a memory layout of the same type with the same size and name as this layout, but with the specified alignment constraint (in bits).
  `UnionLayoutPREVIEW`
  `withName(String name)`
  Returns a memory layout of the same type with the same size and alignment constraint as this layout, but with the specified name.

  ### Methods declared in interface java.lang.foreign.GroupLayoutPREVIEW

  `memberLayouts`

  ### Methods declared in interface java.lang.foreign.MemoryLayoutPREVIEW

  `bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle`

- ## Method Details

  - ### withName

    UnionLayoutPREVIEW withName(String name)
    Returns a memory layout of the same type with the same size and alignment constraint as this layout, but with the specified name.
    Specified by:
      `withName` in interface `GroupLayoutPREVIEW`
    Specified by:
      `withName` in interface `MemoryLayoutPREVIEW`
    Parameters:
      `name` - the layout name.
    Returns:
      a memory layout with the given name.
    See Also:
      - `MemoryLayout.name()`PREVIEW

  - ### withBitAlignment

    UnionLayoutPREVIEW withBitAlignment(long bitAlignment)
    Returns a memory layout of the same type with the same size and name as this layout, but with the specified alignment constraint (in bits).
    Specified by:
      `withBitAlignment` in interface `GroupLayoutPREVIEW`
    Specified by:
      `withBitAlignment` in interface `MemoryLayoutPREVIEW`
    Parameters:
      `bitAlignment` - the layout alignment constraint, expressed in bits.
    Returns:
      a memory layout with the given alignment constraint.