---
title: CVAttachmentCompositeKeyDefinition
framework: corevideo
role: symbol
role_heading: Structure
path: corevideo/cvattachmentcompositekeydefinition
---

# CVAttachmentCompositeKeyDefinition

Associates a set of raw attachment keys with a value type and preferred propagation mode.

## Declaration

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

## Overview

Overview The rawValues array should contain raw key strings required to represent any instance of Value. Even if some of the elements in rawValues are not required to represent certain instances of Value.

## Topics

### Initializers

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

### Instance Properties

- [rawValues](corevideo/cvattachmentcompositekeydefinition/rawvalues.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [ExpressibleByArrayLiteral](swift/expressiblebyarrayliteral.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)
- [CVAttachmentKeyDefinition](corevideo/cvattachmentkeydefinition.md)
- [CVAttachmentKeyDefinitionWithDefault](corevideo/cvattachmentkeydefinitionwithdefault.md)
- [CVAttachmentModePreferenceShouldPropagate](corevideo/cvattachmentmodepreferenceshouldpropagate.md)
- [CVAttachmentModePreferenceShouldNotPropagate](corevideo/cvattachmentmodepreferenceshouldnotpropagate.md)
