---
title: MarkupOrderedSet
framework: paperkit
role: symbol
role_heading: Structure
path: paperkit/markuporderedset
---

# MarkupOrderedSet

An ordered set of markup elements.

## Declaration

```swift
struct MarkupOrderedSet
```

## Overview

Overview The set ensures all elements have unique id values.

## Topics

### Creating a set

- [init()](paperkit/markuporderedset/init().md)

### Adding elements

- [append(_:)](paperkit/markuporderedset/append(_:).md)
- [append(contentsOf:)](paperkit/markuporderedset/append(contentsof:).md)
- [insert(_:at:)](paperkit/markuporderedset/insert(_:at:).md)
- [updateOrAppend(_:)](paperkit/markuporderedset/updateorappend(_:).md)

### Accessing elements

- [subscript(_:)](paperkit/markuporderedset/subscript(_:)-1h73t.md)
- [subscript(_:)](paperkit/markuporderedset/subscript(_:)-6e2ez.md)
- [subscript(_:)](paperkit/markuporderedset/subscript(_:)-79x8r.md)
- [ids](paperkit/markuporderedset/ids.md)
- [strokes](paperkit/markuporderedset/strokes.md)
- [count](paperkit/markuporderedset/count.md)

### Removing elements

- [remove(_:)](paperkit/markuporderedset/remove(_:).md)
- [remove(at:)](paperkit/markuporderedset/remove(at:).md)
- [removeAll(where:)](paperkit/markuporderedset/removeall(where:).md)
- [removeElement(for:)](paperkit/markuporderedset/removeelement(for:)-4pqof.md)
- [removeElement(for:)](paperkit/markuporderedset/removeelement(for:)-5khjd.md)
- [removeStroke(for:)](paperkit/markuporderedset/removestroke(for:).md)

### Finding elements

- [contains(_:)](paperkit/markuporderedset/contains(_:).md)
- [firstIndex(of:)](paperkit/markuporderedset/firstindex(of:).md)

### Identifying elements

- [MarkupOrderedSet.ElementID](paperkit/markuporderedset/elementid.md)
- [MarkupOrderedSet.ElementIDs](paperkit/markuporderedset/elementids.md)

### Type Aliases

- [MarkupOrderedSet.Element](paperkit/markuporderedset/element.md)

### Default Implementations

- [BidirectionalCollection Implementations](paperkit/markuporderedset/bidirectionalcollection-implementations.md)
- [Collection Implementations](paperkit/markuporderedset/collection-implementations.md)

## Relationships

### Conforms To

- [BidirectionalCollection](swift/bidirectionalcollection.md)
- [Collection](swift/collection.md)
- [Copyable](swift/copyable.md)
- [Escapable](swift/escapable.md)
- [RandomAccessCollection](swift/randomaccesscollection.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [Sequence](swift/sequence.md)

## See Also

### Data model

- [PaperMarkup](paperkit/papermarkup.md)
- [MarkupID](paperkit/markupid.md)
