# IoErrorKind

`import { IoErrorKind } from "destack:error";`

Portable I/O error category.

```ds title="IoErrorKind"
export enum IoErrorKind {
    NotFound,
    PermissionDenied,
    AlreadyExists,
    InvalidInput,
    InvalidData,
    TimedOut,
    Interrupted,
    WouldBlock,
    UnexpectedEof,
    WriteZero,
    BrokenPipe,
    ConnectionRefused,
    ConnectionReset,
    ConnectionAborted,
    NotConnected,
    AddressInUse,
    AddressNotAvailable,
    ResourceBusy,
    Unsupported,
    OutOfMemory,
    Other,
}
```

[language/library/src/error/io.ds:7:50](https://github.com/destack-sh/destack/blob/main/language/library/src/error/io.ds#L7-L50)

## Variants

### `NotFound`

The requested entity does not exist.

### `PermissionDenied`

Permission was denied.

### `AlreadyExists`

The requested entity already exists.

### `InvalidInput`

The input parameter is invalid.

### `InvalidData`

The input data is malformed.

### `TimedOut`

The operation timed out.

### `Interrupted`

The operation was interrupted.

### `WouldBlock`

The operation would block.

### `UnexpectedEof`

The stream ended before the operation completed.

### `WriteZero`

The operation wrote zero bytes when progress was required.

### `BrokenPipe`

The peer closed the connection.

### `ConnectionRefused`

The connection was refused.

### `ConnectionReset`

The connection was reset.

### `ConnectionAborted`

The connection was aborted.

### `NotConnected`

The socket is not connected.

### `AddressInUse`

The address is already in use.

### `AddressNotAvailable`

The address is not available.

### `ResourceBusy`

The resource is busy.

### `Unsupported`

The operation is not supported.

### `OutOfMemory`

The operation failed because memory could not be allocated.

### `Other`

The error does not fit another category.
