// // Navigation.swift // AcaMate // // Created by Sean Kim on 12/13/24. // import Foundation struct NaviState: Equatable { var act: NaviAction var path: PathName static func == (lhs: NaviState, rhs: NaviState) -> Bool { return lhs.act == rhs.act && lhs.path == rhs.path } mutating func set(act: NaviAction = .ADD, path: PathName = .NONE) { self.act = act self.path = path } } enum NaviAction: Hashable { /// 한 계층 추가 case ADD /// 전체 삭제 후 추가 case RESET /// 한 계층 빼기 case POP /// 위치로 이동 (path == NONE인 경우 최상단) case MOVE /// 아무 동작 안함 case NONE /// FIRST = 가장 메인, MOVE = 그곳으로 } enum PathName: Hashable { case Intro case Login case Main case NONE }