Module java.base
Package java.lang.foreign

# Interface PaddingLayout

All Superinterfaces:
  `MemoryLayoutPREVIEW`

public sealed interface PaddingLayout extends MemoryLayoutPREVIEW
`PaddingLayout` is a preview API of the Java platform.
Programs can only use `PaddingLayout` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A padding layout. A padding layout specifies the size of extra space which is typically not accessed by applications, and is typically used for aligning member layouts around word boundaries.

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
`PaddingLayoutPREVIEW`
`withByteAlignment(long byteAlignment)`
Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).
`PaddingLayoutPREVIEW`
`withName(String name)`
Returns a memory layout with the same characteristics as this layout, but with the given name.
`PaddingLayoutPREVIEW`
`withoutName()`
Returns a memory layout with the same characteristics as this layout, but with no name.

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

`byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle`

## Method Details

### withName

PaddingLayoutPREVIEW withName(String name)
Returns a memory layout with the same characteristics as this layout, but with the given name.

Specified by:
  `withName` in interface `MemoryLayoutPREVIEW`
Parameters:
  `name` - the layout name.
Returns:
  a memory layout with the same characteristics as this layout, but with the given name
See Also:
  - `MemoryLayout.name()`PREVIEW

### withoutName

PaddingLayoutPREVIEW withoutName()
Returns a memory layout with the same characteristics as this layout, but with no name.

Specified by:
  `withoutName` in interface `MemoryLayoutPREVIEW`
Returns:
  a memory layout with the same characteristics as this layout, but with no name
See Also:
  - `MemoryLayout.name()`PREVIEW

### withByteAlignment

PaddingLayoutPREVIEW withByteAlignment(long byteAlignment)
Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).

Specified by:
  `withByteAlignment` in interface `MemoryLayoutPREVIEW`
Parameters:
  `byteAlignment` - the layout alignment constraint, expressed in bytes.
Returns:
  a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes)
Throws:
  `IllegalArgumentException` - if `byteAlignment` is not a power of two.