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

# Struct Scoped

Module: `noir_aztec::protocol::side_effect::scoped`

```rust
pub struct Scoped<T> {
    pub inner: T,
    pub contract_address: AztecAddress,
}
```

## Fields

```rust
inner: T
```

```rust
contract_address: AztecAddress
```

## Implementations

```rust
impl<T> Scoped<T>
```

```rust
pub fn new(inner: T, contract_address: AztecAddress) -> Self
```

```rust
impl<T> Scoped<Counted<T>>
```

```rust
pub fn innermost(self) -> T
```

```rust
pub fn is_non_revertible(
    self,
    is_private_only: bool,
    claimed_revertible_counter: u32,
) -> bool
```

```rust
impl Scoped<Counted<Field>>
```

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

```rust
impl Scoped<Counted<L2ToL1Message>>
```

```rust
pub fn expose_to_public(self) -> Scoped<L2ToL1Message>
```

```rust
impl Scoped<Counted<PrivateLogData>>
```

```rust
pub fn expose_to_public(self) -> PrivateLog
```

```rust
impl Scoped<Counted<LogHash>>
```

```rust
pub fn expose_to_public(self) -> Scoped<LogHash>
```

```rust
impl Scoped<Counted<Nullifier>>
```

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

## Trait implementations

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

```rust
pub fn deserialize(
    fields: [Field; <T as serde::serialization::Deserialize>::N + 1],
) -> Self
```

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

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

```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<T> Eq for Scoped<T>
where
    T: Eq
```

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

```rust
impl<T> Ordered for Scoped<Counted<T>>
```

```rust
pub fn counter(self) -> u32
```

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

```rust
pub fn serialize(self) -> [Field; <T as serde::serialization::Serialize>::N + 1]
```

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