Skip to content

Commit 7f4aa4e

Browse files
committed
Refactor documentation into separate topic articles
- Create Core-Components.md article for fundamental types and APIs - Create Advanced-Topics.md article for specialized functionality - Remove nested subheadings (####) from main documentation - Organize topics into logical groups with dedicated articles - Improve documentation discoverability and navigation
1 parent b139d90 commit 7f4aa4e

File tree

4 files changed

+93
-40
lines changed

4 files changed

+93
-40
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Advanced Topics
2+
3+
Advanced features and implementation details for sophisticated use cases.
4+
5+
## Overview
6+
7+
These advanced topics cover specialized functionality and implementation details that are useful for complex scenarios and deep integration with OpenAttributeGraph's reactive system.
8+
9+
## Attribute Bodies
10+
11+
Low-level attribute implementation and visitor patterns for advanced attribute manipulation.
12+
13+
- ``AttributeBodyVisitor`` - Protocol for visiting and inspecting attribute bodies
14+
- ``ObservedAttribute`` - Attribute wrapper for observing changes in other attributes
15+
16+
## Context Management
17+
18+
Types for managing evaluation contexts and rule execution environments.
19+
20+
- ``RuleContext`` - Context object providing access to rule evaluation state
21+
- ``AnyRuleContext`` - Type-erased rule context for runtime flexibility
22+
23+
## Type System Support
24+
25+
Utilities for working with external values and memory layout manipulation.
26+
27+
- ``External`` - Wrapper for external values not managed by the attribute graph
28+
- ``PointerOffset`` - Type-safe pointer arithmetic for nested attribute access
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Core Components
2+
3+
The fundamental building blocks of OpenAttributeGraph's reactive programming system.
4+
5+
## Overview
6+
7+
OpenAttributeGraph provides a comprehensive set of components for building reactive applications. These core components work together to provide automatic dependency tracking, efficient updates, and a clean programming model.
8+
9+
## Attributes
10+
11+
The foundation of the reactive system, providing property wrappers and type-erased access to reactive values.
12+
13+
- ``Attribute`` - The primary property wrapper for reactive values
14+
- ``AnyAttribute`` - Type-erased attribute for runtime flexibility
15+
- ``WeakAttribute`` - Weak reference attribute wrapper
16+
- ``AnyWeakAttribute`` - Type-erased weak attribute
17+
- ``OptionalAttribute`` - Optional value attribute wrapper
18+
- ``AnyOptionalAttribute`` - Type-erased optional attribute
19+
- ``IndirectAttribute`` - Indirect attribute for complex reference scenarios
20+
21+
## Rules and Transformations
22+
23+
Protocols and types for creating computed attributes that derive their values from other attributes.
24+
25+
- ``Rule`` - Protocol for stateless computed attributes
26+
- ``StatefulRule`` - Protocol for stateful computed attributes
27+
- ``Focus`` - Rule for focusing on part of an attribute's value
28+
- ``Map`` - Rule for transforming attribute values
29+
30+
## Graph Management
31+
32+
Types that manage the dependency graph and coordinate updates across attributes.
33+
34+
- ``Graph`` - Central coordinator for attribute relationships and updates
35+
- ``Subgraph`` - Scoped computation context for isolated attribute groups
36+
37+
## Runtime Support
38+
39+
Low-level utilities for type introspection, comparison, and memory management.
40+
41+
- ``Metadata`` - Swift runtime type information and reflection
42+
- ``compareValues(_:_:mode:)`` - Efficient value comparison across types
43+
- ``TupleType`` - Runtime support for tuple types and operations
44+
45+
## Debugging and Development
46+
47+
Tools for debugging attribute graphs and monitoring performance.
48+
49+
- ``DebugServer`` - Server for debugging and introspecting attribute graphs
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>CFBundleName</key>
6+
<string>OpenAttributeGraph</string>
7+
<key>CFBundleDisplayName</key>
8+
<string>OpenAttributeGraph</string>
9+
<key>CDDefaultCodeListingLanguage</key>
10+
<string>swift</string>
11+
</dict>
12+
</plist>
Lines changed: 4 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# ``OpenAttributeGraph``
22

3-
A high-performance reactive programming framework that powers SwiftUI's underlying dependency tracking and update system.
3+
A high-performance reactive programming framework that powers OpebSwiftUI's underlying dependency tracking and update system.
44

55
## Overview
66

7-
OpenAttributeGraph is an open source implementation of Apple's private AttributeGraph framework. It provides a reactive programming model built around attributes that automatically track dependencies and efficiently propagate changes through a dependency graph.
7+
It provides a reactive programming model built around attributes that automatically track dependencies and efficiently propagate changes through a dependency graph.
88

99
The framework is designed for high performance and powers the reactive updates that make SwiftUI interfaces responsive and efficient.
1010

@@ -16,44 +16,8 @@ The framework is designed for high performance and powers the reactive updates t
1616

1717
### Core Components
1818

19-
#### Attributes
20-
- ``Attribute``
21-
- ``AnyAttribute``
22-
- ``WeakAttribute``
23-
- ``AnyWeakAttribute``
24-
- ``OptionalAttribute``
25-
- ``AnyOptionalAttribute``
26-
- ``IndirectAttribute``
27-
28-
#### Rules and Transformations
29-
- ``Rule``
30-
- ``StatefulRule``
31-
- ``Focus``
32-
- ``Map``
33-
34-
#### Graph Management
35-
- ``Graph``
36-
- ``Subgraph``
37-
38-
#### Runtime Support
39-
- ``Metadata``
40-
- ``compareValues(_:_:mode:)``
41-
- ``TupleType``
42-
43-
#### Debugging and Development
44-
- ``DebugServer``
19+
- <doc:Core-Components>
4520

4621
### Advanced Topics
4722

48-
#### Attribute Bodies
49-
- ``_AttributeBody``
50-
- ``AttributeBodyVisitor``
51-
- ``ObservedAttribute``
52-
53-
#### Context Management
54-
- ``RuleContext``
55-
- ``AnyRuleContext``
56-
57-
#### Type System Support
58-
- ``External``
59-
- ``PointerOffset``
23+
- <doc:Advanced-Topics>

0 commit comments

Comments
 (0)