---
title: CustomReflectable
framework: swift
role: symbol
role_heading: Protocol
path: swift/customreflectable
---

# CustomReflectable

A type that explicitly supplies its own mirror.

## Declaration

```swift
protocol CustomReflectable
```

## Overview

Overview You can create a mirror for any type using the Mirror(reflecting:) initializer, but if you are not satisfied with the mirror supplied for your type by default, you can make it conform to CustomReflectable and return a custom Mirror instance.

## Topics

### Instance Properties

- [customMirror](swift/customreflectable/custommirror.md)

## Relationships

### Inherited By

- [CustomLeafReflectable](swift/customleafreflectable.md)

### Conforming Types

- [AnyHashable](swift/anyhashable.md)
- [Array](swift/array.md)
- [ArraySlice](swift/arrayslice.md)
- [AutoreleasingUnsafeMutablePointer](swift/autoreleasingunsafemutablepointer.md)
- [Bool](swift/bool.md)
- [Character](swift/character.md)
- [ClosedRange](swift/closedrange.md)
- [CollectionOfOne](swift/collectionofone.md)
- [ContiguousArray](swift/contiguousarray.md)
- [Dictionary](swift/dictionary.md)
- [Dictionary.Iterator](swift/dictionary/iterator.md)
- [Double](swift/double.md)
- [Float](swift/float.md)
- [Float80](swift/float80.md)
- [Int](swift/int.md)
- [Int128](swift/int128.md)
- [Int16](swift/int16.md)
- [Int32](swift/int32.md)
- [Int64](swift/int64.md)
- [Int8](swift/int8.md)
- [Mirror](swift/mirror.md)
- [Optional](swift/optional.md)
- [Range](swift/range.md)
- [Set](swift/set.md)
- [Set.Iterator](swift/set/iterator.md)
- [StaticBigInt](swift/staticbigint.md)
- [StaticString](swift/staticstring.md)
- [StrideThrough](swift/stridethrough.md)
- [StrideTo](swift/strideto.md)
- [String](swift/string.md)
- [String.UTF16View](swift/string/utf16view.md)
- [String.UTF8View](swift/string/utf8view.md)
- [String.UnicodeScalarView](swift/string/unicodescalarview.md)
- [Substring](swift/substring.md)
- [UInt](swift/uint.md)
- [UInt128](swift/uint128.md)
- [UInt16](swift/uint16.md)
- [UInt32](swift/uint32.md)
- [UInt64](swift/uint64.md)
- [UInt8](swift/uint8.md)
- [Unicode.Scalar](swift/unicode/scalar.md)
- [UnsafeMutablePointer](swift/unsafemutablepointer.md)
- [UnsafeMutableRawPointer](swift/unsafemutablerawpointer.md)
- [UnsafePointer](swift/unsafepointer.md)
- [UnsafeRawPointer](swift/unsaferawpointer.md)

## See Also

### Customizing Your Type’s Reflection

- [CustomLeafReflectable](swift/customleafreflectable.md)
- [CustomPlaygroundDisplayConvertible](swift/customplaygrounddisplayconvertible.md)
- [PlaygroundQuickLook](swift/playgroundquicklook.md)
- [DebugDescription()](swift/debugdescription().md)
