├── .gitignore ├── .swiftformat ├── Apps └── Landmarks │ ├── Landmarks.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── Landmarks │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── landmark_app_icon_1024x1024.png │ │ ├── landmark_app_icon_120x120-1.png │ │ ├── landmark_app_icon_120x120.png │ │ ├── landmark_app_icon_152x152.png │ │ ├── landmark_app_icon_167x167.png │ │ ├── landmark_app_icon_180x180.png │ │ ├── landmark_app_icon_20x20.png │ │ ├── landmark_app_icon_29x29.png │ │ ├── landmark_app_icon_40x40-1.png │ │ ├── landmark_app_icon_40x40-2.png │ │ ├── landmark_app_icon_40x40.png │ │ ├── landmark_app_icon_58x58-1.png │ │ ├── landmark_app_icon_58x58.png │ │ ├── landmark_app_icon_60x60.png │ │ ├── landmark_app_icon_76x76.png │ │ ├── landmark_app_icon_80x80-1.png │ │ ├── landmark_app_icon_80x80.png │ │ └── landmark_app_icon_87x87.png │ ├── Contents.json │ ├── charleyrivers.imageset │ │ ├── Contents.json │ │ └── charleyrivers@2x.jpg │ ├── chilkoottrail.imageset │ │ ├── Contents.json │ │ └── chilkoottrail@2x.jpg │ ├── chincoteague.imageset │ │ ├── Contents.json │ │ └── chincoteague@2x.jpg │ ├── hiddenlake.imageset │ │ ├── Contents.json │ │ └── hiddenlake@2x.jpg │ ├── icybay.imageset │ │ ├── Contents.json │ │ └── icybay@2x.jpg │ ├── lakemcdonald.imageset │ │ ├── Contents.json │ │ └── lakemcdonald@2x.jpg │ ├── rainbowlake.imageset │ │ ├── Contents.json │ │ └── rainbowlake@2x.jpg │ ├── silversalmoncreek.imageset │ │ ├── Contents.json │ │ └── silversalmoncreek@2x.jpg │ ├── stmarylake.imageset │ │ ├── Contents.json │ │ └── stmarylake@2x.jpg │ ├── turtlerock.imageset │ │ ├── Contents.json │ │ └── turtlerock@2x.jpg │ ├── twinlake.imageset │ │ ├── Contents.json │ │ └── twinlake@2x.jpg │ └── umbagog.imageset │ │ ├── Contents.json │ │ └── umbagog@2x.jpg │ ├── Components │ ├── CategoryHome.swift │ ├── Common │ │ ├── Badge.swift │ │ ├── CircleImage.swift │ │ └── FavoriteButton.swift │ ├── LandmarkList.swift │ ├── ProfileHost+Hike.swift │ └── ProfileHost.swift │ ├── Composables │ └── useLandmarks.swift │ ├── ContentView.swift │ ├── LandmarksApp.swift │ ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json │ ├── Resources │ ├── hikeData.json │ └── landmarkData.json │ ├── Types │ ├── Category.swift │ ├── Hike.swift │ ├── Landmark.swift │ └── Profile.swift │ └── Views │ ├── CategoryHomeView.swift │ ├── LandmarkDetailView.swift │ ├── LandmarkListView.swift │ └── ProfileHostView.swift ├── Example ├── Example.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved ├── Example │ ├── Apps │ │ ├── ExampleApp │ │ │ ├── ContentView.swift │ │ │ └── ExampleApp.swift │ │ ├── TodoApp │ │ │ ├── DemoContentView.swift │ │ │ ├── TodoApp.swift │ │ │ └── TodoMainPage.swift │ │ └── TourApp │ │ │ ├── CounterFeature.swift │ │ │ └── TourApp.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Info.plist │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── Shared │ │ └── Utils.swift │ └── UseCases │ │ ├── ComposableCasesView.swift │ │ ├── ComputedUseCasesView.swift │ │ ├── ContextUseCasesView.swift │ │ ├── EffectScopeUseCasesView.swift │ │ ├── EnvironmentUseCasesView.swift │ │ ├── MemoUseCasesView.swift │ │ ├── NavigationUseCasesView.swift │ │ ├── NestedUseCasesView.swift │ │ ├── ReactivityUseCasesView.swift │ │ ├── ReducerUseCasesView.swift │ │ ├── SearchIdentifierCasesView.swift │ │ ├── StoreUseCasesView.swift │ │ ├── UseCasesView.swift │ │ ├── UseFetchUseCasesView.swift │ │ ├── ValueUseCasesView.swift │ │ └── WatchUseCasesView.swift └── Syntax.playground │ ├── Pages │ ├── DynamicMemberLookup+KeyPath+Class.xcplaygroundpage │ │ └── Contents.swift │ ├── DynamicMemeberLookup+KeyPath+Struct.xcplaygroundpage │ │ └── Contents.swift │ └── Hello.xcplaygroundpage │ │ └── Contents.swift │ └── contents.xcplayground ├── LICENSE ├── Package.resolved ├── Package.swift ├── README.md ├── README_CN.md ├── Sources ├── Water │ ├── CallStackParser │ │ ├── CallStackIdentifier.swift │ │ ├── CallStackParser.swift │ │ ├── CwlDemangle.swift │ │ ├── NSObject+Logging.swift │ │ └── String+Extensions.swift │ ├── Composables │ │ ├── useAsyncState.swift │ │ ├── useEnvironment.swift │ │ ├── useFetch.swift │ │ ├── useLifecycle.swift │ │ ├── useReducer.swift │ │ ├── useStore.swift │ │ └── useToast.swift │ ├── Dispatcher.swift │ ├── LinkList.swift │ ├── Observable.swift │ ├── Reactivity │ │ ├── Array.swift │ │ ├── Bindable.swift │ │ ├── Computed.swift │ │ ├── Effect.swift │ │ ├── EffectScope.swift │ │ ├── Handler.swift │ │ ├── Object.swift │ │ ├── Value.swift │ │ └── Watch.swift │ ├── Tools.swift │ └── Views │ │ ├── ContainerView.swift │ │ ├── MemoView.swift │ │ └── ViewsExt.swift ├── WaterMacro │ └── WaterMacro.swift └── WaterMacros │ └── ComputedMacro.swift ├── Tests ├── WaterMacroTests │ └── WaterMacroTests.swift └── WaterTests │ ├── ComputedSpec.swift │ ├── EffectScopeSpec.swift │ ├── EffectSpec.swift │ ├── ReactiveArraySpec.swift │ ├── ReactiveObjectSpec.swift │ ├── ReactiveReadonlySpec.swift │ ├── ReactiveValueSpec.swift │ ├── TestHelpers.swift │ ├── ViewIdentifierSpec.swift │ ├── WatchSpec.swift │ └── WaterTests.swift ├── Water.podspec ├── Water.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── swiftpm │ └── Package.resolved └── docs ├── compare-with-x.md └── reactivity ├── reactive.md └── readonly.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/.gitignore -------------------------------------------------------------------------------- /.swiftformat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/.swiftformat -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_1024x1024.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_120x120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_120x120-1.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_120x120.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_152x152.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_167x167.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_180x180.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_20x20.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_29x29.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40-1.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40-2.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_40x40.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_58x58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_58x58-1.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_58x58.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_60x60.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_76x76.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_80x80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_80x80-1.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_80x80.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/AppIcon.appiconset/landmark_app_icon_87x87.png -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/charleyrivers.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/charleyrivers.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/charleyrivers.imageset/charleyrivers@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/charleyrivers.imageset/charleyrivers@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/chilkoottrail.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/chilkoottrail.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/chilkoottrail.imageset/chilkoottrail@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/chilkoottrail.imageset/chilkoottrail@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/chincoteague.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/chincoteague.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/chincoteague.imageset/chincoteague@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/chincoteague.imageset/chincoteague@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/hiddenlake.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/hiddenlake.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/hiddenlake.imageset/hiddenlake@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/hiddenlake.imageset/hiddenlake@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/icybay.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/icybay.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/icybay.imageset/icybay@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/icybay.imageset/icybay@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/lakemcdonald.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/lakemcdonald.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/lakemcdonald.imageset/lakemcdonald@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/lakemcdonald.imageset/lakemcdonald@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/rainbowlake.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/rainbowlake.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/rainbowlake.imageset/rainbowlake@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/rainbowlake.imageset/rainbowlake@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/silversalmoncreek.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/silversalmoncreek.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/silversalmoncreek.imageset/silversalmoncreek@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/silversalmoncreek.imageset/silversalmoncreek@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/stmarylake.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/stmarylake.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/stmarylake.imageset/stmarylake@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/stmarylake.imageset/stmarylake@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/turtlerock.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/turtlerock.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/turtlerock.imageset/turtlerock@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/turtlerock.imageset/turtlerock@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/twinlake.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/twinlake.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/twinlake.imageset/twinlake@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/twinlake.imageset/twinlake@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/umbagog.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/umbagog.imageset/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Assets.xcassets/umbagog.imageset/umbagog@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Assets.xcassets/umbagog.imageset/umbagog@2x.jpg -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/CategoryHome.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/CategoryHome.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/Common/Badge.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/Common/Badge.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/Common/CircleImage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/Common/CircleImage.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/Common/FavoriteButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/Common/FavoriteButton.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/LandmarkList.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/LandmarkList.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/ProfileHost+Hike.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/ProfileHost+Hike.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Components/ProfileHost.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Components/ProfileHost.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Composables/useLandmarks.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Composables/useLandmarks.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/ContentView.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/LandmarksApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/LandmarksApp.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Resources/hikeData.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Resources/hikeData.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Resources/landmarkData.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Resources/landmarkData.json -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Types/Category.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Types/Category.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Types/Hike.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Types/Hike.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Types/Landmark.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Types/Landmark.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Types/Profile.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Types/Profile.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Views/CategoryHomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Views/CategoryHomeView.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Views/LandmarkDetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Views/LandmarkDetailView.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Views/LandmarkListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Views/LandmarkListView.swift -------------------------------------------------------------------------------- /Apps/Landmarks/Landmarks/Views/ProfileHostView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Apps/Landmarks/Landmarks/Views/ProfileHostView.swift -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /Example/Example/Apps/ExampleApp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/ExampleApp/ContentView.swift -------------------------------------------------------------------------------- /Example/Example/Apps/ExampleApp/ExampleApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/ExampleApp/ExampleApp.swift -------------------------------------------------------------------------------- /Example/Example/Apps/TodoApp/DemoContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/TodoApp/DemoContentView.swift -------------------------------------------------------------------------------- /Example/Example/Apps/TodoApp/TodoApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/TodoApp/TodoApp.swift -------------------------------------------------------------------------------- /Example/Example/Apps/TodoApp/TodoMainPage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/TodoApp/TodoMainPage.swift -------------------------------------------------------------------------------- /Example/Example/Apps/TourApp/CounterFeature.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/TourApp/CounterFeature.swift -------------------------------------------------------------------------------- /Example/Example/Apps/TourApp/TourApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Apps/TourApp/TourApp.swift -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Example/Example/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Info.plist -------------------------------------------------------------------------------- /Example/Example/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Example/Example/Shared/Utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/Shared/Utils.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ComposableCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ComposableCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ComputedUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ComputedUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ContextUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ContextUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/EffectScopeUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/EffectScopeUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/EnvironmentUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/EnvironmentUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/MemoUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/MemoUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/NavigationUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/NavigationUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/NestedUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/NestedUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ReactivityUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ReactivityUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ReducerUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ReducerUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/SearchIdentifierCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/SearchIdentifierCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/StoreUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/StoreUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/UseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/UseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/UseFetchUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/UseFetchUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/ValueUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/ValueUseCasesView.swift -------------------------------------------------------------------------------- /Example/Example/UseCases/WatchUseCasesView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Example/UseCases/WatchUseCasesView.swift -------------------------------------------------------------------------------- /Example/Syntax.playground/Pages/DynamicMemberLookup+KeyPath+Class.xcplaygroundpage/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Syntax.playground/Pages/DynamicMemberLookup+KeyPath+Class.xcplaygroundpage/Contents.swift -------------------------------------------------------------------------------- /Example/Syntax.playground/Pages/DynamicMemeberLookup+KeyPath+Struct.xcplaygroundpage/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Syntax.playground/Pages/DynamicMemeberLookup+KeyPath+Struct.xcplaygroundpage/Contents.swift -------------------------------------------------------------------------------- /Example/Syntax.playground/Pages/Hello.xcplaygroundpage/Contents.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Syntax.playground/Pages/Hello.xcplaygroundpage/Contents.swift -------------------------------------------------------------------------------- /Example/Syntax.playground/contents.xcplayground: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Example/Syntax.playground/contents.xcplayground -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Package.resolved -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/README.md -------------------------------------------------------------------------------- /README_CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/README_CN.md -------------------------------------------------------------------------------- /Sources/Water/CallStackParser/CallStackIdentifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/CallStackParser/CallStackIdentifier.swift -------------------------------------------------------------------------------- /Sources/Water/CallStackParser/CallStackParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/CallStackParser/CallStackParser.swift -------------------------------------------------------------------------------- /Sources/Water/CallStackParser/CwlDemangle.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/CallStackParser/CwlDemangle.swift -------------------------------------------------------------------------------- /Sources/Water/CallStackParser/NSObject+Logging.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/CallStackParser/NSObject+Logging.swift -------------------------------------------------------------------------------- /Sources/Water/CallStackParser/String+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/CallStackParser/String+Extensions.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useAsyncState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useAsyncState.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useEnvironment.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useEnvironment.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useFetch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useFetch.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useLifecycle.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useLifecycle.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useReducer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useReducer.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useStore.swift -------------------------------------------------------------------------------- /Sources/Water/Composables/useToast.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Composables/useToast.swift -------------------------------------------------------------------------------- /Sources/Water/Dispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Dispatcher.swift -------------------------------------------------------------------------------- /Sources/Water/LinkList.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/LinkList.swift -------------------------------------------------------------------------------- /Sources/Water/Observable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Observable.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Array.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Array.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Bindable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Bindable.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Computed.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Computed.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Effect.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Effect.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/EffectScope.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/EffectScope.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Handler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Handler.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Object.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Object.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Value.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Value.swift -------------------------------------------------------------------------------- /Sources/Water/Reactivity/Watch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Reactivity/Watch.swift -------------------------------------------------------------------------------- /Sources/Water/Tools.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Tools.swift -------------------------------------------------------------------------------- /Sources/Water/Views/ContainerView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Views/ContainerView.swift -------------------------------------------------------------------------------- /Sources/Water/Views/MemoView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Views/MemoView.swift -------------------------------------------------------------------------------- /Sources/Water/Views/ViewsExt.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/Water/Views/ViewsExt.swift -------------------------------------------------------------------------------- /Sources/WaterMacro/WaterMacro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/WaterMacro/WaterMacro.swift -------------------------------------------------------------------------------- /Sources/WaterMacros/ComputedMacro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Sources/WaterMacros/ComputedMacro.swift -------------------------------------------------------------------------------- /Tests/WaterMacroTests/WaterMacroTests.swift: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tests/WaterTests/ComputedSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ComputedSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/EffectScopeSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/EffectScopeSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/EffectSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/EffectSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/ReactiveArraySpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ReactiveArraySpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/ReactiveObjectSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ReactiveObjectSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/ReactiveReadonlySpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ReactiveReadonlySpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/ReactiveValueSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ReactiveValueSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/TestHelpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/TestHelpers.swift -------------------------------------------------------------------------------- /Tests/WaterTests/ViewIdentifierSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/ViewIdentifierSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/WatchSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/WatchSpec.swift -------------------------------------------------------------------------------- /Tests/WaterTests/WaterTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Tests/WaterTests/WaterTests.swift -------------------------------------------------------------------------------- /Water.podspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Water.podspec -------------------------------------------------------------------------------- /Water.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Water.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Water.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Water.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Water.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/Water.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /docs/compare-with-x.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/docs/compare-with-x.md -------------------------------------------------------------------------------- /docs/reactivity/reactive.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenLyl/Water/HEAD/docs/reactivity/reactive.md -------------------------------------------------------------------------------- /docs/reactivity/readonly.md: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------