---
title: ObservationRegistrar
framework: observation
role: symbol
role_heading: Structure
path: observation/observationregistrar
---

# ObservationRegistrar

Provides storage for tracking and access to data changes.

## Declaration

```swift
struct ObservationRegistrar
```

## Overview

Overview You don’t need to create an instance of ObservationRegistrar when using the Observable() macro to indicate observability of a type.

## Topics

### Creating an observation registrar

- [init()](observation/observationregistrar/init().md)

### Receiving change notifications

- [willSet(_:keyPath:)](observation/observationregistrar/willset(_:keypath:).md)
- [didSet(_:keyPath:)](observation/observationregistrar/didset(_:keypath:).md)

### Identifying transactional access

- [access(_:keyPath:)](observation/observationregistrar/access(_:keypath:).md)
- [withMutation(of:keyPath:_:)](observation/observationregistrar/withmutation(of:keypath:_:).md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Change tracking

- [withObservationTracking(_:onChange:)](observation/withobservationtracking(_:onchange:).md)
