subscript(dynamicMember:)

Extracts the associated value of a case via dynamic member lookup.

CasePathable.swift:390
subscript<Value>(dynamicMember keyPath: KeyPath<Self.AllCasePaths, AnyCasePath<Self, Value>>) -> Value? { get set }

Simply annotate the base type with @dynamicMemberLookup to enable this functionality:

@CasePathable
@dynamicMemberLookup
enum UserAction {
  case home(HomeAction)
  case settings(SettingsAction)
}

let userAction: UserAction = .home(.onAppear)
userAction.home      // Optional(HomeAction.onAppear)
userAction.settings  // nil

let userActions: [UserAction] = [.home(.onAppear), .settings(.subscribeButtonTapped)]
userActions.compactMap(\.home)      // [HomeAction.onAppear]
userActions.compactMap(\.settings)  // [SettingsAction.subscribeButtonTapped]