Skip to content

Commit 32dc67d

Browse files
committed
Fix documentation references and formatting
- Rename Core-Components.md to CoreComponents.md (remove hyphens) - Rename Advanced-Topics.md to AdvancedTopics.md (remove hyphens) - Update article references in OpenAttributeGraph.md to match filenames - Remove Architecture-article suffix, use Architecture directly - Remove all ** bold formatting from markdown articles - Update article titles to match filename conventions
1 parent 7f4aa4e commit 32dc67d

File tree

4 files changed

+46
-46
lines changed

4 files changed

+46
-46
lines changed

Sources/OpenAttributeGraph/OpenAttributeGraph.docc/Advanced-Topics.md renamed to Sources/OpenAttributeGraph/OpenAttributeGraph.docc/AdvancedTopics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Advanced Topics
1+
# AdvancedTopics
22

33
Advanced features and implementation details for sophisticated use cases.
44

Sources/OpenAttributeGraph/OpenAttributeGraph.docc/Architecture.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ The **Attribute layer** forms the foundation of the reactive system, providing t
1414

1515
#### Core Concepts
1616

17-
**Property Wrapper Design**: At its heart, ``Attribute`` is a property wrapper that makes any Swift value reactive. When you wrap a value with `@Attribute`, it automatically gains dependency tracking capabilities:
17+
Property Wrapper Design: At its heart, ``Attribute`` is a property wrapper that makes any Swift value reactive. When you wrap a value with `@Attribute`, it automatically gains dependency tracking capabilities:
1818

1919
@Attribute var count: Int = 0
2020

21-
**Type Erasure**: ``AnyAttribute`` provides type-erased access to attributes, enabling runtime flexibility while maintaining type safety where possible.
21+
Type Erasure: ``AnyAttribute`` provides type-erased access to attributes, enabling runtime flexibility while maintaining type safety where possible.
2222

23-
**Rule-Based Transformations**: The ``Rule`` and ``StatefulRule`` protocols allow you to create computed attributes that automatically update when their dependencies change:
23+
Rule-Based Transformations: The ``Rule`` and ``StatefulRule`` protocols allow you to create computed attributes that automatically update when their dependencies change:
2424

2525
struct DoubledRule: Rule {
2626
typealias Value = Int
@@ -31,52 +31,52 @@ The **Attribute layer** forms the foundation of the reactive system, providing t
3131
}
3232
}
3333

34-
**Reference Semantics**: ``WeakAttribute`` and ``OptionalAttribute`` provide safe ways to handle optional and weak references within the attribute system.
34+
Reference Semantics: ``WeakAttribute`` and ``OptionalAttribute`` provide safe ways to handle optional and weak references within the attribute system.
3535

3636
#### Body System
3737

3838
The attribute body system optimizes performance through:
39-
- **Lazy evaluation**: Values are only computed when needed
40-
- **Caching**: Results are cached until dependencies change
41-
- **Efficient invalidation**: Only affected attributes are marked for recomputation
39+
- Lazy evaluation: Values are only computed when needed
40+
- Caching: Results are cached until dependencies change
41+
- Efficient invalidation: Only affected attributes are marked for recomputation
4242

4343
### Graph Layer
4444

45-
The **Graph layer** manages the dependency network between attributes and orchestrates efficient updates.
45+
The Graph layer manages the dependency network between attributes and orchestrates efficient updates.
4646

4747
#### Dependency Management
4848

4949
The ``Graph`` maintains a directed acyclic graph (DAG) of attribute dependencies:
5050

51-
- **Automatic tracking**: Dependencies are discovered automatically when attributes are accessed during rule evaluation
52-
- **Cycle detection**: The system prevents and detects circular dependencies
53-
- **Batch updates**: Multiple changes are batched together for optimal performance
51+
- Automatic tracking: Dependencies are discovered automatically when attributes are accessed during rule evaluation
52+
- Cycle detection: The system prevents and detects circular dependencies
53+
- Batch updates: Multiple changes are batched together for optimal performance
5454

5555
#### Update Propagation
5656

5757
When an attribute changes, the graph efficiently propagates updates:
5858

59-
1. **Mark phase**: Changed attributes are marked as invalid
60-
2. **Sweep phase**: Dependent attributes are transitively marked
61-
3. **Update phase**: Values are recomputed in dependency order
59+
1. Mark phase: Changed attributes are marked as invalid
60+
2. Sweep phase: Dependent attributes are transitively marked
61+
3. Update phase: Values are recomputed in dependency order
6262

6363
#### Subgraphs
6464

6565
``Subgraph`` provides scoped computation contexts that allow:
66-
- **Isolation**: Separate update domains for different parts of your application
67-
- **Performance**: Smaller update scopes reduce computational overhead
68-
- **Testing**: Isolated environments for unit testing
66+
- Isolation: Separate update domains for different parts of your application
67+
- Performance: Smaller update scopes reduce computational overhead
68+
- Testing: Isolated environments for unit testing
6969

7070
### Runtime Layer
7171

72-
The **Runtime layer** provides the low-level type introspection and memory management that makes the higher layers possible.
72+
The Runtime layer provides the low-level type introspection and memory management that makes the higher layers possible.
7373

7474
#### Type Introspection
7575

7676
``Metadata`` provides Swift runtime type information:
77-
- **Field enumeration**: Discover the fields of any Swift type at runtime
78-
- **Layout information**: Access memory layout and alignment details
79-
- **Type comparison**: Efficiently compare types and values
77+
- Field enumeration: Discover the fields of any Swift type at runtime
78+
- Layout information: Access memory layout and alignment details
79+
- Type comparison: Efficiently compare types and values
8080

8181
This runtime introspection enables features like automatic KeyPath-based attribute access:
8282

@@ -86,13 +86,13 @@ This runtime introspection enables features like automatic KeyPath-based attribu
8686
#### Memory Management
8787

8888
The runtime layer handles:
89-
- **Pointer arithmetic**: Safe offset calculations for nested attribute access
90-
- **Type-safe casting**: Runtime type validation and casting
91-
- **Value comparison**: Efficient equality checking across different types
89+
- Pointer arithmetic: Safe offset calculations for nested attribute access
90+
- Type-safe casting: Runtime type validation and casting
91+
- Value comparison: Efficient equality checking across different types
9292

9393
#### Integration with Swift Runtime
9494

95-
> **Note**: The Runtime layer leverages techniques similar to those found in [wickwirew/Runtime](https://github.com/wickwirew/Runtime) for Swift runtime introspection and type manipulation.
95+
> Note: The Runtime layer leverages techniques similar to those found in [wickwirew/Runtime](https://github.com/wickwirew/Runtime) for Swift runtime introspection and type manipulation.
9696
9797
The system integrates deeply with Swift's runtime to:
9898
- Access private metadata structures safely
@@ -105,34 +105,34 @@ The system integrates deeply with Swift's runtime to:
105105

106106
When you create an attribute, all three layers collaborate:
107107

108-
1. **Runtime layer**: Introspects the value type and creates metadata
109-
2. **Graph layer**: Allocates space in the dependency graph
110-
3. **Attribute layer**: Wraps the value in a reactive property wrapper
108+
1. Runtime layer: Introspects the value type and creates metadata
109+
2. Graph layer: Allocates space in the dependency graph
110+
3. Attribute layer: Wraps the value in a reactive property wrapper
111111

112112
### Dependency Tracking
113113

114114
During rule evaluation:
115115

116-
1. **Attribute layer**: Rules access their dependency attributes
117-
2. **Graph layer**: Records these accesses as dependencies
118-
3. **Runtime layer**: Handles type-safe value extraction and conversion
116+
1. Attribute layer: Rules access their dependency attributes
117+
2. Graph layer: Records these accesses as dependencies
118+
3. Runtime layer: Handles type-safe value extraction and conversion
119119

120120
### Update Propagation
121121

122122
When a change occurs:
123123

124-
1. **Attribute layer**: Detects the value change
125-
2. **Graph layer**: Propagates invalidation through dependencies
126-
3. **Runtime layer**: Provides efficient value comparison to minimize updates
124+
1. Attribute layer: Detects the value change
125+
2. Graph layer: Propagates invalidation through dependencies
126+
3. Runtime layer: Provides efficient value comparison to minimize updates
127127

128128
## Performance Characteristics
129129

130130
The three-layer architecture enables several performance optimizations:
131131

132-
- **Minimal allocations**: Attributes reuse storage and minimize memory churn
133-
- **Lazy evaluation**: Computations are deferred until values are actually needed
134-
- **Batch processing**: Multiple updates are processed together
135-
- **Cache efficiency**: Hot paths through the dependency graph are optimized
132+
- Minimal allocations: Attributes reuse storage and minimize memory churn
133+
- Lazy evaluation: Computations are deferred until values are actually needed
134+
- Batch processing: Multiple updates are processed together
135+
- Cache efficiency: Hot paths through the dependency graph are optimized
136136

137137
## Design Patterns
138138

@@ -151,8 +151,8 @@ Changes propagate automatically without explicit update calls.
151151

152152
Each layer provides debugging capabilities:
153153

154-
- **Attribute layer**: Inspect individual attribute values and states
155-
- **Graph layer**: Visualize dependency relationships and update cycles
156-
- **Runtime layer**: Examine type metadata and memory layout
154+
- Attribute layer: Inspect individual attribute values and states
155+
- Graph layer: Visualize dependency relationships and update cycles
156+
- Runtime layer: Examine type metadata and memory layout
157157

158158
The ``DebugServer`` provides a unified interface for debugging across all layers.

Sources/OpenAttributeGraph/OpenAttributeGraph.docc/Core-Components.md renamed to Sources/OpenAttributeGraph/OpenAttributeGraph.docc/CoreComponents.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Core Components
1+
# CoreComponents
22

33
The fundamental building blocks of OpenAttributeGraph's reactive programming system.
44

Sources/OpenAttributeGraph/OpenAttributeGraph.docc/OpenAttributeGraph.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ The framework is designed for high performance and powers the reactive updates t
1212

1313
### Essentials
1414

15-
- <doc:Architecture-article>
15+
- <doc:Architecture>
1616

1717
### Core Components
1818

19-
- <doc:Core-Components>
19+
- <doc:CoreComponents>
2020

2121
### Advanced Topics
2222

23-
- <doc:Advanced-Topics>
23+
- <doc:AdvancedTopics>

0 commit comments

Comments
 (0)