Last active
October 19, 2024 01:53
-
-
Save ole/72e147e3006ae64fdfee134fb3b4a4c9 to your computer and use it in GitHub Desktop.
Structure of _StackLayoutCache and related types, used by SwiftUI as the Cache type for VStackLayout and HStackLayout
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Structure of _StackLayoutCache and related types. | |
// Used by SwiftUI as the Cache type for VStackLayout and HStackLayout. | |
// | |
// As of: iOS 16.0 simulator in Xcode 14.0b6 | |
import SwiftUI | |
struct _StackLayoutCache { | |
var stack: StackLayout | |
} | |
struct StackLayout { | |
var header: Header | |
var children: Array<Child> | |
struct Header { | |
let minorAxisAlignment: AlignmentKey | |
let uniformSpacing: Optional<CGFloat> | |
let majorAxis: Axis | |
var internalSpacing: CGFloat | |
var lastProposedSize: ProposedViewSize | |
var stackSize: CGSize | |
let proxies: LayoutSubviews | |
let resizeChildrenWithTrailingOverflow: Bool | |
} | |
struct Child { | |
var layoutPriority: Double | |
var majorAxisRangeCache: MajorAxisRangeCache | |
let distanceToPrevious: CGFloat | |
var fittingOrder: Int | |
var geometry: ViewGeometry | |
} | |
struct MajorAxisRangeCache { | |
var min: Optional<CGFloat> | |
var max: Optional<CGFloat> | |
} | |
} | |
struct AlignmentKey: Hashable /*, Comparable */ { | |
let bits: UInt | |
} | |
struct ViewGeometry /*: Equatable */ { | |
var origin: ViewOrigin | |
var dimensions: ViewDimensions | |
} | |
struct ViewOrigin: Equatable /*, Animatable */ { | |
var value: CGPoint | |
} | |
struct ViewDimensions /*: Equatable*/ { | |
let guideComputer: LayoutComputer | |
var size: ViewSize | |
} | |
struct ViewSize: Equatable /*, Animatable */ { | |
var value: CGSize | |
var _proposal: CGSize | |
} | |
struct LayoutComputer /*: Equatable, Defaultable */ { | |
var engine: AnyLayoutEngineBox | |
var seed: Int | |
} | |
class AnyLayoutEngineBox { | |
// My reflection code shows no stored properties. Is this true? | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment