> Aztec.nr API reference, v6.0.0 (mainnet and testnet). Index: https://docs.aztec.network/aztec-nr-api/v6.0.0/llms.txt

# Struct OnchainDeliveryMode

Module: `noir_aztec::messages::delivery`

```rust
pub struct OnchainDeliveryMode
{ /* private fields */ }
```

The mode of an on-chain message delivery: unconstrained or constrained tagging.

This is kept separate from the private \[`DeliveryMode`] wrapper because it is used in external ABIs and therefore owns the serialization and validation for the on-chain-only subset.

Consumers derive modes through the delivery API, e.g. `let mode: OnchainDeliveryMode = MessageDelivery::onchain_unconstrained().into()`.

## Implementations

```rust
impl OnchainDeliveryMode
```

## Trait implementations

```rust
impl Deserialize for OnchainDeliveryMode
```

```rust
pub fn deserialize(fields: [Field; 1]) -> Self
```

```rust
pub fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self
```

```rust
impl Eq for OnchainDeliveryMode
```

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

```rust
impl From<OnchainConstrainedDelivery> for OnchainDeliveryMode
```

```rust
pub fn from(_delivery: OnchainConstrainedDelivery) -> Self
```

```rust
impl From<OnchainUnconstrainedDelivery> for OnchainDeliveryMode
```

```rust
pub fn from(_delivery: OnchainUnconstrainedDelivery) -> Self
```

```rust
impl Serialize for OnchainDeliveryMode
```

```rust
pub fn serialize(self) -> [Field; 1]
```

```rust
pub fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>)
```

```rust
impl ToField for OnchainDeliveryMode
```

```rust
pub fn to_field(self) -> Field
```
