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

# Trait Empty

Module: `noir_aztec::protocol::traits`

```rust
pub trait Empty: Eq
where
    _: Eq{
    // Required methods
    pub fn empty() -> Self
    where
        Self: Eq;

    // Provided methods
    pub fn is_empty(self) -> bool
    where
        Self: Eq { ... }
    pub fn assert_empty<let S: u32>(self, msg: str<S>)
    where
        Self: Eq { ... }
}
```

## Required methods

```rust
pub fn empty() -> Self
where
    Self: Eq
```

## Provided methods

```rust
pub fn is_empty(self) -> bool
where
    Self: Eq
```

```rust
pub fn assert_empty<let S: u32>(self, msg: str<S>)
where
    Self: Eq
```

## Implementors

```rust
impl<A, B> Empty for (A, B)
where
    A: Empty,
    B: Empty
```

```rust
impl Empty for AppendOnlyTreeSnapshot
```

```rust
impl Empty for AuthorizationSelector
```

```rust
impl Empty for AvmAccumulatedData
```

```rust
impl Empty for AvmAccumulatedDataArrayLengths
```

```rust
impl Empty for AvmCircuitPublicInputs
```

```rust
impl Empty for AztecAddress
```

```rust
impl Empty for BlockConstantData
```

```rust
impl Empty for BlockHeader
```

```rust
impl Empty for CallContext
```

```rust
impl Empty for CheckpointConstantData
```

```rust
impl Empty for CheckpointHeader
```

```rust
impl<let N: u32, T> Empty for ClaimedLengthArray<T, N>
where
    T: Empty
```

```rust
impl Empty for ContractClassId
```

```rust
impl Empty for ContractClassLog
```

```rust
impl<T> Empty for Counted<T>
where
    T: Empty
```

```rust
impl Empty for EmbeddedCurveScalar
```

```rust
impl Empty for EpochConstantData
```

```rust
impl Empty for EthAddress
```

```rust
impl Empty for EventSelector
```

```rust
impl Empty for FeeRecipient
```

```rust
impl Empty for Field
```

```rust
impl Empty for FunctionData
```

```rust
impl Empty for FunctionSelector
```

```rust
impl Empty for Gas
```

```rust
impl Empty for GasFees
```

```rust
impl Empty for GasSettings
```

```rust
impl Empty for GlobalVariables
```

```rust
impl Empty for KeyValidationRequest
```

```rust
impl Empty for KeyValidationRequestAndSeparator
```

```rust
impl Empty for L2ToL1Message
```

```rust
impl<let N: u32> Empty for Log<N>
```

```rust
impl Empty for LogHash
```

```rust
impl<let N: u32> Empty for MembershipWitness<N>
```

```rust
impl<let N: u32> Empty for MerkleTree<N>
```

```rust
impl Empty for MockStruct
```

```rust
impl Empty for NoteHashLeafPreimage
```

```rust
impl Empty for Nullifier
```

```rust
impl Empty for NullifierLeafPreimage
```

```rust
impl<T> Empty for Option<T>
where
    T: Eq
```

```rust
impl Empty for PartialAddress
```

```rust
impl Empty for PartialStateReference
```

```rust
impl Empty for PrivateAccumulatedData
```

```rust
impl Empty for PrivateCallRequest
```

```rust
impl Empty for PrivateCircuitPublicInputs
```

```rust
impl Empty for PrivateContext
```

```rust
impl Empty for PrivateContextInputs
```

```rust
impl Empty for PrivateLogData
```

```rust
impl Empty for PrivateToAvmAccumulatedData
```

```rust
impl Empty for PrivateToAvmAccumulatedDataArrayLengths
```

```rust
impl Empty for PrivateToPublicAccumulatedData
```

```rust
impl Empty for PrivateToPublicKernelCircuitPublicInputs
```

```rust
impl Empty for PrivateToRollupAccumulatedData
```

```rust
impl Empty for PrivateToRollupKernelCircuitPublicInputs
```

```rust
impl Empty for PrivateTxConstantData
```

```rust
impl Empty for PrivateValidationRequests
```

```rust
impl Empty for ProtocolContracts
```

```rust
impl Empty for PublicCallRequest
```

```rust
impl Empty for PublicCallRequestArrayLengths
```

```rust
impl Empty for PublicContext
```

```rust
impl Empty for PublicDataTreeLeaf
```

```rust
impl Empty for PublicDataTreeLeafPreimage
```

```rust
impl Empty for PublicDataWrite
```

```rust
impl Empty for PublicKeysHash
```

```rust
impl Empty for PublicLogs
```

```rust
impl<let INITIAL_DELAY: u64> Empty for ScheduledDelayChange<INITIAL_DELAY>
```

```rust
impl<T> Empty for ScheduledValueChange<T>
where
    T: Empty
```

```rust
impl<T> Empty for Scoped<T>
where
    T: Empty
```

```rust
impl Empty for SpongeBlob
```

```rust
impl Empty for StateReference
```

```rust
impl Empty for TestLeafPreimage
```

```rust
impl Empty for TreeSnapshots
```

```rust
impl Empty for TxConstantData
```

```rust
impl Empty for TxContext
```

```rust
impl Empty for TxEffect
```

```rust
impl Empty for TxRequest
```

```rust
impl<let M: u32> Empty for VerificationKey<M>
```

```rust
impl<let VK_LENGTH: u32> Empty for VkData<VK_LENGTH>
```

```rust
impl<let N: u32, T> Empty for [T; N]
where
    T: Empty
```

```rust
impl<T> Empty for [T]
where
    T: Empty
```

```rust
impl Empty for bool
```

```rust
impl Empty for u128
```

```rust
impl Empty for u16
```

```rust
impl Empty for u32
```

```rust
impl Empty for u64
```

```rust
impl Empty for u8
```
