---
title: BufferKind
summary: Enum describing what kind of buffer had insufficient size, in a BufferSizeError.
url: https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/error/enum.BufferKind/
---

**Kind:** Enum  
**Module:** [error](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/error/)  
**Package:** fastly 0.13.1  
**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/error.rs#10

```rust
#[non_exhaustive]
pub enum BufferKind {
    Geo,
    HeaderName,
    HeaderValue,
    HttpMethod,
    Url,
}
```

Enum describing what kind of buffer had insufficient size, in a [`BufferSizeError`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/error/struct.BufferSizeError/).

## Variants

### Geo

The too-small buffer is for holding a [`Geo`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/geo/struct.Geo/).

### HeaderName

The too-small buffer is for holding a header name.

### HeaderValue

The too-small buffer is for holding a header value.

### HttpMethod

The too-small buffer is for holding an HTTP method.

### Url

The too-small buffer is for holding a URL.

## Trait implementations

### impl Clone for BufferKind

#### clone

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/error.rs#9

```rust
fn clone(&self) -> Self
```

**Parameters**

- `self`: `&Self`

**Returns**

`Self`

### impl Debug for BufferKind

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/error.rs#9

```rust
fn fmt(&self, f: &mut Formatter<'_>) -> Result
```

**Parameters**

- `self`: `&Self`
- `f`: `&mut $crate::fmt::Formatter`

**Returns**

`$crate::fmt::Result`

### impl Display for BufferKind

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/error.rs#24

```rust
fn fmt(&self, f: &mut Formatter<'_>) -> Result
```

**Parameters**

- `self`: `&Self`
- `f`: `&mut fmt::Formatter`

**Returns**

`fmt::Result`

### impl PartialEq for BufferKind

#### eq

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/error.rs#9

```rust
fn eq(&self, other: &Self) -> bool
```

**Parameters**

- `self`: `&Self`
- `other`: `&Self`

**Returns**

`bool`

## Auto trait implementations

- `Freeze`
- `RefUnwindSafe`
- `Send`
- `Sync`
- `Unpin`
- `UnsafeUnpin`
- `UnwindSafe`

## Blanket implementations

- `Any`
- `Borrow<T>`
- `BorrowMut<T>`
- `CloneToUninit`
- `Downcast`
- `DowncastSync`
- `Equivalent<K>`
- `ErasedDestructor`
- `From<T>`
- `Into<U>`
- `IntoEither`
- `Same`
- `ToOwned`
- `ToString`
- `TryFrom<U>`
- `TryInto<U>`
