---
title: CVAttachmentKeyDefinition
framework: corevideo
role: symbol
role_heading: Structure
path: corevideo/cvattachmentkeydefinition
---

# CVAttachmentKeyDefinition

Associates a raw attachment key with a value type and preferred propagation mode.

## Declaration

```swift
struct CVAttachmentKeyDefinition<ModePreference, Value> where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable
```

## Topics

### Initializers

- [init(_:)](corevideo/cvattachmentkeydefinition/init(_:).md)

### Instance Properties

- [rawValue](corevideo/cvattachmentkeydefinition/rawvalue.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [ExpressibleByExtendedGraphemeClusterLiteral](swift/expressiblebyextendedgraphemeclusterliteral.md)
- [ExpressibleByStringLiteral](swift/expressiblebystringliteral.md)
- [ExpressibleByUnicodeScalarLiteral](swift/expressiblebyunicodescalarliteral.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Attachment system (Swift)

- [CVAttachmentAccess](corevideo/cvattachmentaccess.md)
- [CVAttachmentContainer](corevideo/cvattachmentcontainer.md)
- [CVAttachmentRawValue](corevideo/cvattachmentrawvalue.md)
- [CVAttachmentKeyDefinitionWithDefault](corevideo/cvattachmentkeydefinitionwithdefault.md)
- [CVAttachmentCompositeKeyDefinition](corevideo/cvattachmentcompositekeydefinition.md)
- [CVAttachmentModePreferenceShouldPropagate](corevideo/cvattachmentmodepreferenceshouldpropagate.md)
- [CVAttachmentModePreferenceShouldNotPropagate](corevideo/cvattachmentmodepreferenceshouldnotpropagate.md)
