---
title: CacheOverride
summary: Optional override for response caching behavior. These options mostly apply during host caching, but guest caching also respects them.
url: https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/enum.CacheOverride/
---

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

```rust
pub enum CacheOverride {
    None,
    Pass,
    Override {
        ttl: Option<u32>,
        stale_while_revalidate: Option<u32>,
        stale_if_error: Option<u32>,
        pci: bool,
        surrogate_key: Option<HeaderValue>,
        lookup_timeout_ms: Option<u32>,
    },
}
```

Optional override for response caching behavior.
These options mostly apply during host caching, but guest caching also respects them.

## Variants

### None

Do not override the behavior specified in the origin response's cache control headers.

### Pass

Do not cache the response to this request, regardless of the origin response's headers.

### Override

- `ttl`: `Option<u32>`
- `stale_while_revalidate`: `Option<u32>`
- `stale_if_error`: `Option<u32>`
- `pci`: `bool`
- `surrogate_key`: `Option<http::header::HeaderValue>`
- `lookup_timeout_ms`: `Option<u32>`

Override particular cache control settings.

The origin response's cache control headers will be used for ttl (max_age), stale_while_revalidate, and stale_if_error if `None`.
Note that stale_if_error is only supported via the guest caching API.

## Methods

### default

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1806

```rust
const fn default() -> Self
```

Return a default set of overrides (no overrides)

**Returns**

`Self`

### get_lookup_timeout

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1783

```rust
fn get_lookup_timeout(&self) -> Option<Duration>
```

Get the lookup timeout period configured on this override

**Parameters**

- `self`: `&Self`

**Returns**

`Option<Duration>`

### get_pci

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1749

```rust
fn get_pci(&self) -> Option<bool>
```

Get the sensitive-data override setting

**Parameters**

- `self`: `&Self`

**Returns**

`Option<bool>`

### get_stale_if_error

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1732

```rust
fn get_stale_if_error(&self) -> Option<u32>
```

Get the SIE period configured on this override

**Parameters**

- `self`: `&Self`

**Returns**

`Option<u32>`

### get_stale_while_revalidate

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1708

```rust
fn get_stale_while_revalidate(&self) -> Option<u32>
```

Get the SWR period configured on this override

**Parameters**

- `self`: `&Self`

**Returns**

`Option<u32>`

### get_surrogate_key

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1766

```rust
fn get_surrogate_key(&self) -> Option<&HeaderValue>
```

Get the surrogate keys configured on this override

**Parameters**

- `self`: `&Self`

**Returns**

`Option<&HeaderValue>`

### get_ttl

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1691

```rust
fn get_ttl(&self) -> Option<u32>
```

Get the TTL configured on this override

**Parameters**

- `self`: `&Self`

**Returns**

`Option<u32>`

### is_pass

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1597

```rust
fn is_pass(&self) -> bool
```

Returns true if this override will cause the request to bypass the cache

**Parameters**

- `self`: `&Self`

**Returns**

`bool`

### lookup_timeout

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1664

```rust
const fn lookup_timeout(timeout_ms: u32) -> Self
```

Create a CacheOverride that overrides (only) the cache lookup timeout. Timeout given in
milliseconds.

**Parameters**

- `timeout_ms`: `u32`

**Returns**

`Self`

### none

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1587

```rust
const fn none() -> Self
```

Create a CacheOverride that overrides no fields.

**Returns**

`Self`

### pass

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1592

```rust
const fn pass() -> Self
```

Create a CacheOverride forcing a cache bypass.

**Returns**

`Self`

### pci

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1639

```rust
const fn pci(pci: bool) -> Self
```

Create a CacheOverride that overrides (only) the sensitive data bit; if set, prevents the
response from being stored in persistent storage

**Parameters**

- `pci`: `bool`

**Returns**

`Self`

### set_lookup_timeout

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1795

```rust
fn set_lookup_timeout(&mut self, timeout: Duration)
```

Set the cache lookup timeout configured on this override; value rounded to milliseconds.

**Parameters**

- `self`: `&mut Self`
- `timeout`: `std::time::Duration`

### set_none

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1676

```rust
fn set_none(&mut self)
```

Updates the CacheOverride to override no fields

**Parameters**

- `self`: `&mut Self`

### set_pass

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1682

```rust
fn set_pass(&mut self, pass: bool)
```

Updates the CacheOverride provide the given Pass behavior; if pass is false, clears all
overrides and reverts to the default behavior

**Parameters**

- `self`: `&mut Self`
- `pass`: `bool`

### set_pci

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1758

```rust
fn set_pci(&mut self, new_pci: bool)
```

Set the sensitive-data override setting

**Parameters**

- `self`: `&mut Self`
- `new_pci`: `bool`

### set_stale_if_error

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1741

```rust
fn set_stale_if_error(&mut self, new_sie: u32)
```

Set the SIE period configured on this override

**Parameters**

- `self`: `&mut Self`
- `new_sie`: `u32`

### set_stale_while_revalidate

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1721

```rust
fn set_stale_while_revalidate(&mut self, new_swr: u32)
```

Set the SWR period configured on this override

**Parameters**

- `self`: `&mut Self`
- `new_swr`: `u32`

### set_surrogate_key

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1775

```rust
fn set_surrogate_key(&mut self, new_surrogate_key: HeaderValue)
```

Set the surrogate keys configured on this override

**Parameters**

- `self`: `&mut Self`
- `new_surrogate_key`: `HeaderValue`

### set_ttl

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1700

```rust
fn set_ttl(&mut self, new_ttl: u32)
```

Set the TTL configured on this override

**Parameters**

- `self`: `&mut Self`
- `new_ttl`: `u32`

### stale_if_error

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1626

```rust
const fn stale_if_error(sie: u32) -> Self
```

Create a CacheOverride that overrides (only) the stale-if-error period

**Parameters**

- `sie`: `u32`

**Returns**

`Self`

### stale_while_revalidate

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1614

```rust
const fn stale_while_revalidate(swr: u32) -> Self
```

Create a CacheOverride that overrides (only) the stale-while-revalidate period

**Parameters**

- `swr`: `u32`

**Returns**

`Self`

### surrogate_key

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1651

```rust
const fn surrogate_key(sk: HeaderValue) -> Self
```

Create a CacheOverride that overrides (only) the surrogate keys

**Parameters**

- `sk`: `HeaderValue`

**Returns**

`Self`

### ttl

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1602

```rust
const fn ttl(ttl: u32) -> Self
```

Create a CacheOverride that overrides (only) the TTL

**Parameters**

- `ttl`: `u32`

**Returns**

`Self`

## Trait implementations

### impl Clone for CacheOverride

#### clone

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1552

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

**Parameters**

- `self`: `&Self`

**Returns**

`Self`

### impl Debug for CacheOverride

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1552

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

**Parameters**

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

**Returns**

`$crate::fmt::Result`

### impl Default for CacheOverride

#### default

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/handle.rs#1580

```rust
fn default() -> Self
```

**Returns**

`Self`

## Auto trait implementations

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

## Blanket implementations

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