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

# Struct ContractClassId

Module: `protocol_types::contract_class_id`

```rust
pub struct ContractClassId {
    pub inner: Field,
}
```

## Fields

```rust
inner: Field
```

## Implementations

```rust
impl ContractClassId
```

```rust
pub fn compute(
    artifact_hash: Field,
    private_functions_root: Field,
    public_bytecode_commitment: Field,
) -> Self
```

```rust
pub fn assert_is_zero(self)
```

## Trait implementations

```rust
impl Deserialize for ContractClassId
```

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

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

```rust
impl Empty for ContractClassId
```

```rust
pub fn empty() -> Self
```

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

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

```rust
impl Eq for ContractClassId
```

```rust
pub fn eq(_self: Self, _other: Self) -> bool
```

```rust
impl FromField for ContractClassId
```

```rust
pub fn from_field(value: Field) -> Self
```

```rust
impl Packable for ContractClassId
```

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

```rust
pub fn unpack(packed: [Field; 1]) -> Self
```

```rust
impl Serialize for ContractClassId
```

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

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

```rust
impl ToField for ContractClassId
```

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