.just(AppAction.increase(increment: 20)), AppAction.increase(increment: 30)]
63 |
64 | var initialIncrement = 10
65 | let actionsToTest = try actions.toAsync().toBlocking().toArray()
66 |
67 | actionsToTest.forEach {
68 | if case let AppAction.increase(increment) = $0 {
69 | XCTAssertEqual(initialIncrement, increment)
70 | initialIncrement += 10
71 | } else {
72 | XCTFail()
73 | }
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/RxReduceTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RxReduceTests/State/Actions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Actions.swift
3 | // RxReduceTests
4 | //
5 | // Created by Thibault Wittemberg on 18-06-11.
6 | // Copyright (c) RxSwiftCommunity. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import RxReduce
11 |
12 | enum AppAction: Action {
13 | case increase(increment: Int)
14 | case decrease(decrement: Int)
15 | case logUser(user: String)
16 | case clear
17 | }
18 |
--------------------------------------------------------------------------------
/RxReduceTests/State/Reducers.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Reducers.swift
3 | // RxReduceTests
4 | //
5 | // Created by Thibault Wittemberg on 18-06-11.
6 | // Copyright (c) RxSwiftCommunity. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import RxReduce
11 |
12 | func counterReduce (state: TestState, action: Action) -> CounterState {
13 |
14 | guard let action = action as? AppAction else { return state.counterState }
15 |
16 | var currentCounter = 0
17 |
18 | // we extract the current counter value from the current state
19 | switch state.counterState {
20 | case .decreasing(let counter), .increasing(let counter):
21 | currentCounter = counter
22 | default:
23 | currentCounter = 0
24 | }
25 |
26 | // according to the action we mutate the counter state
27 | switch action {
28 | case .increase(let increment):
29 | return .increasing(currentCounter+increment)
30 | case .decrease(let decrement):
31 | return .decreasing(currentCounter-decrement)
32 | case .clear:
33 | return .empty
34 | default:
35 | return state.counterState
36 | }
37 | }
38 |
39 | func userReduce (state: TestState, action: Action) -> UserState {
40 |
41 | guard let action = action as? AppAction else { return state.userState }
42 |
43 | // according to the action we mutate the users state
44 | switch action {
45 | case .logUser(let user):
46 | return .loggedIn(name: user)
47 | case .clear:
48 | return .loggedOut
49 | default:
50 | return state.userState
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/RxReduceTests/State/States.swift:
--------------------------------------------------------------------------------
1 | //
2 | // State.swift
3 | // RxReduceTests
4 | //
5 | // Created by Thibault Wittemberg on 18-06-11.
6 | // Copyright (c) RxSwiftCommunity. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import RxReduce
11 |
12 | struct TestState: Equatable {
13 | var counterState: CounterState
14 | var userState: UserState
15 | }
16 |
17 | enum CounterState: Equatable {
18 | case empty
19 | case increasing (Int)
20 | case decreasing (Int)
21 | }
22 |
23 | enum UserState: Equatable {
24 | case loggedIn (name: String)
25 | case loggedOut
26 | }
27 |
--------------------------------------------------------------------------------
/docs/Classes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Classes Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Classes Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Classes
80 | The following classes are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Store
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
A default store that will handle a specific kind of State
100 |
101 |
See more
102 |
103 |
104 |
Declaration
105 |
106 |
Swift
107 |
public final class Store < StateType > : StoreType where StateType : State
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
122 |
123 |
124 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/docs/Extensions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Extensions Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Extensions Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Extensions
80 | The following extensions are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Array
92 |
93 |
94 |
95 |
96 |
97 |
98 |
102 |
103 |
Declaration
104 |
105 |
Swift
106 |
struct Array < Element > : _DestructorSafeContainer
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
121 |
122 |
123 |
124 |
125 |
129 |
130 |
Declaration
131 |
132 |
Swift
133 |
class Observable < Element > : ObservableType
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
148 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/docs/Extensions/Array.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Array Extension Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Array Extension Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Array
80 |
81 |
82 |
struct Array < Element > : _DestructorSafeContainer
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
Declaration
108 |
109 |
Swift
110 |
public func toAsync () -> Observable < Action >
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/docs/Extensions/Observable.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Observable Extension Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Observable Extension Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Observable
80 |
81 |
82 |
class Observable < Element > : ObservableType
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
Declaration
108 |
109 |
Swift
110 |
public func toAsync () -> Observable < Action >
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/docs/Protocols.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Protocols Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Protocols Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Protocols
80 | The following protocols are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Action
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
Conform to an Action to mutate the State synchronously or asynchronously
100 | Arrays of Actions and Observable of Action are considered to be Actions as well
101 |
102 |
See more
103 |
104 |
105 |
Declaration
106 |
107 |
Swift
108 |
public protocol Action
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | State
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
Conform to the State protocol to be handled by a Store
133 |
134 |
135 |
136 |
Declaration
137 |
138 |
Swift
139 |
public protocol State
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | StoreType
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
A Store holds the state, mutate the state through actions / reducers and exposes the state via a Driver
164 | A Store is dedicated to a State Type
165 |
166 |
See more
167 |
168 |
169 |
Declaration
170 |
171 |
Swift
172 |
public protocol StoreType
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
187 |
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------
/docs/Protocols/Action.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Action Protocol Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Action Protocol Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Action
80 |
81 |
82 |
public protocol Action
83 |
84 |
85 |
86 | Conform to an Action to mutate the State synchronously or asynchronously
87 | Arrays of Actions and Observable of Action are considered to be Actions as well
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 | toAsync()
99 |
100 |
101 | Default implementation
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
Convert the action into an Observable so it is compliant with asynchronous processing
110 |
111 |
112 | Default Implementation
113 |
114 |
115 |
116 |
117 |
Declaration
118 |
119 |
Swift
120 |
func toAsync () -> Observable < Action >
121 |
122 |
123 |
124 |
125 |
Return Value
126 |
the asynchronous action
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
139 |
140 |
141 |
142 |
143 |
144 |
--------------------------------------------------------------------------------
/docs/Typealiases.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Type Aliases Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Type Aliases Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Type Aliases
80 | The following type aliases are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Reducer
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
A Reducer mutates an input state into an output state according to an action
100 |
101 |
102 |
103 |
Declaration
104 |
105 |
Swift
106 |
public typealias Reducer < StateType > = ( _ state : StateType ?, _ action : Action ) -> StateType
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
121 |
122 |
123 |
124 |
125 |
126 |
A Middleware has not effect on the state, it us just triggered by a dispatch action
127 |
128 |
129 |
130 |
Declaration
131 |
132 |
Swift
133 |
public typealias Middleware < StateType > = ( _ state : StateType ?, _ action : Action ) -> Void
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
148 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/docs/badge.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | documentation
17 |
18 |
19 | documentation
20 |
21 |
22 | 100%
23 |
24 |
25 | 100%
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/css/highlight.css:
--------------------------------------------------------------------------------
1 | /* Credit to https://gist.github.com/wataru420/2048287 */
2 | .highlight {
3 | /* Comment */
4 | /* Error */
5 | /* Keyword */
6 | /* Operator */
7 | /* Comment.Multiline */
8 | /* Comment.Preproc */
9 | /* Comment.Single */
10 | /* Comment.Special */
11 | /* Generic.Deleted */
12 | /* Generic.Deleted.Specific */
13 | /* Generic.Emph */
14 | /* Generic.Error */
15 | /* Generic.Heading */
16 | /* Generic.Inserted */
17 | /* Generic.Inserted.Specific */
18 | /* Generic.Output */
19 | /* Generic.Prompt */
20 | /* Generic.Strong */
21 | /* Generic.Subheading */
22 | /* Generic.Traceback */
23 | /* Keyword.Constant */
24 | /* Keyword.Declaration */
25 | /* Keyword.Pseudo */
26 | /* Keyword.Reserved */
27 | /* Keyword.Type */
28 | /* Literal.Number */
29 | /* Literal.String */
30 | /* Name.Attribute */
31 | /* Name.Builtin */
32 | /* Name.Class */
33 | /* Name.Constant */
34 | /* Name.Entity */
35 | /* Name.Exception */
36 | /* Name.Function */
37 | /* Name.Namespace */
38 | /* Name.Tag */
39 | /* Name.Variable */
40 | /* Operator.Word */
41 | /* Text.Whitespace */
42 | /* Literal.Number.Float */
43 | /* Literal.Number.Hex */
44 | /* Literal.Number.Integer */
45 | /* Literal.Number.Oct */
46 | /* Literal.String.Backtick */
47 | /* Literal.String.Char */
48 | /* Literal.String.Doc */
49 | /* Literal.String.Double */
50 | /* Literal.String.Escape */
51 | /* Literal.String.Heredoc */
52 | /* Literal.String.Interpol */
53 | /* Literal.String.Other */
54 | /* Literal.String.Regex */
55 | /* Literal.String.Single */
56 | /* Literal.String.Symbol */
57 | /* Name.Builtin.Pseudo */
58 | /* Name.Variable.Class */
59 | /* Name.Variable.Global */
60 | /* Name.Variable.Instance */
61 | /* Literal.Number.Integer.Long */ }
62 | .highlight .c {
63 | color: #999988;
64 | font-style: italic; }
65 | .highlight .err {
66 | color: #a61717;
67 | background-color: #e3d2d2; }
68 | .highlight .k {
69 | color: #000000;
70 | font-weight: bold; }
71 | .highlight .o {
72 | color: #000000;
73 | font-weight: bold; }
74 | .highlight .cm {
75 | color: #999988;
76 | font-style: italic; }
77 | .highlight .cp {
78 | color: #999999;
79 | font-weight: bold; }
80 | .highlight .c1 {
81 | color: #999988;
82 | font-style: italic; }
83 | .highlight .cs {
84 | color: #999999;
85 | font-weight: bold;
86 | font-style: italic; }
87 | .highlight .gd {
88 | color: #000000;
89 | background-color: #ffdddd; }
90 | .highlight .gd .x {
91 | color: #000000;
92 | background-color: #ffaaaa; }
93 | .highlight .ge {
94 | color: #000000;
95 | font-style: italic; }
96 | .highlight .gr {
97 | color: #aa0000; }
98 | .highlight .gh {
99 | color: #999999; }
100 | .highlight .gi {
101 | color: #000000;
102 | background-color: #ddffdd; }
103 | .highlight .gi .x {
104 | color: #000000;
105 | background-color: #aaffaa; }
106 | .highlight .go {
107 | color: #888888; }
108 | .highlight .gp {
109 | color: #555555; }
110 | .highlight .gs {
111 | font-weight: bold; }
112 | .highlight .gu {
113 | color: #aaaaaa; }
114 | .highlight .gt {
115 | color: #aa0000; }
116 | .highlight .kc {
117 | color: #000000;
118 | font-weight: bold; }
119 | .highlight .kd {
120 | color: #000000;
121 | font-weight: bold; }
122 | .highlight .kp {
123 | color: #000000;
124 | font-weight: bold; }
125 | .highlight .kr {
126 | color: #000000;
127 | font-weight: bold; }
128 | .highlight .kt {
129 | color: #445588; }
130 | .highlight .m {
131 | color: #009999; }
132 | .highlight .s {
133 | color: #d14; }
134 | .highlight .na {
135 | color: #008080; }
136 | .highlight .nb {
137 | color: #0086B3; }
138 | .highlight .nc {
139 | color: #445588;
140 | font-weight: bold; }
141 | .highlight .no {
142 | color: #008080; }
143 | .highlight .ni {
144 | color: #800080; }
145 | .highlight .ne {
146 | color: #990000;
147 | font-weight: bold; }
148 | .highlight .nf {
149 | color: #990000; }
150 | .highlight .nn {
151 | color: #555555; }
152 | .highlight .nt {
153 | color: #000080; }
154 | .highlight .nv {
155 | color: #008080; }
156 | .highlight .ow {
157 | color: #000000;
158 | font-weight: bold; }
159 | .highlight .w {
160 | color: #bbbbbb; }
161 | .highlight .mf {
162 | color: #009999; }
163 | .highlight .mh {
164 | color: #009999; }
165 | .highlight .mi {
166 | color: #009999; }
167 | .highlight .mo {
168 | color: #009999; }
169 | .highlight .sb {
170 | color: #d14; }
171 | .highlight .sc {
172 | color: #d14; }
173 | .highlight .sd {
174 | color: #d14; }
175 | .highlight .s2 {
176 | color: #d14; }
177 | .highlight .se {
178 | color: #d14; }
179 | .highlight .sh {
180 | color: #d14; }
181 | .highlight .si {
182 | color: #d14; }
183 | .highlight .sx {
184 | color: #d14; }
185 | .highlight .sr {
186 | color: #009926; }
187 | .highlight .s1 {
188 | color: #d14; }
189 | .highlight .ss {
190 | color: #990073; }
191 | .highlight .bp {
192 | color: #999999; }
193 | .highlight .vc {
194 | color: #008080; }
195 | .highlight .vg {
196 | color: #008080; }
197 | .highlight .vi {
198 | color: #008080; }
199 | .highlight .il {
200 | color: #009999; }
201 |
--------------------------------------------------------------------------------
/docs/css/jazzy.css:
--------------------------------------------------------------------------------
1 | html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
2 | background: transparent;
3 | border: 0;
4 | margin: 0;
5 | outline: 0;
6 | padding: 0;
7 | vertical-align: baseline; }
8 |
9 | body {
10 | background-color: #f2f2f2;
11 | font-family: Helvetica, freesans, Arial, sans-serif;
12 | font-size: 14px;
13 | -webkit-font-smoothing: subpixel-antialiased;
14 | word-wrap: break-word; }
15 |
16 | h1, h2, h3 {
17 | margin-top: 0.8em;
18 | margin-bottom: 0.3em;
19 | font-weight: 100;
20 | color: black; }
21 |
22 | h1 {
23 | font-size: 2.5em; }
24 |
25 | h2 {
26 | font-size: 2em;
27 | border-bottom: 1px solid #e2e2e2; }
28 |
29 | h4 {
30 | font-size: 13px;
31 | line-height: 1.5;
32 | margin-top: 21px; }
33 |
34 | h5 {
35 | font-size: 1.1em; }
36 |
37 | h6 {
38 | font-size: 1.1em;
39 | color: #777; }
40 |
41 | .section-name {
42 | color: gray;
43 | display: block;
44 | font-family: Helvetica;
45 | font-size: 22px;
46 | font-weight: 100;
47 | margin-bottom: 15px; }
48 |
49 | pre, code {
50 | font: 0.95em Menlo, monospace;
51 | color: #777;
52 | word-wrap: normal; }
53 |
54 | p code, li code {
55 | background-color: #eee;
56 | padding: 2px 4px;
57 | border-radius: 4px; }
58 |
59 | a {
60 | color: #0088cc;
61 | text-decoration: none; }
62 |
63 | ul {
64 | padding-left: 15px; }
65 |
66 | li {
67 | line-height: 1.8em; }
68 |
69 | img {
70 | max-width: 100%; }
71 |
72 | blockquote {
73 | margin-left: 0;
74 | padding: 0 10px;
75 | border-left: 4px solid #ccc; }
76 |
77 | .content-wrapper {
78 | margin: 0 auto;
79 | width: 980px; }
80 |
81 | header {
82 | font-size: 0.85em;
83 | line-height: 26px;
84 | background-color: #414141;
85 | position: fixed;
86 | width: 100%;
87 | z-index: 1; }
88 | header img {
89 | padding-right: 6px;
90 | vertical-align: -4px;
91 | height: 16px; }
92 | header a {
93 | color: #fff; }
94 | header p {
95 | float: left;
96 | color: #999; }
97 | header .header-right {
98 | float: right;
99 | margin-left: 16px; }
100 |
101 | #breadcrumbs {
102 | background-color: #f2f2f2;
103 | height: 27px;
104 | padding-top: 17px;
105 | position: fixed;
106 | width: 100%;
107 | z-index: 1;
108 | margin-top: 26px; }
109 | #breadcrumbs #carat {
110 | height: 10px;
111 | margin: 0 5px; }
112 |
113 | .sidebar {
114 | background-color: #f9f9f9;
115 | border: 1px solid #e2e2e2;
116 | overflow-y: auto;
117 | overflow-x: hidden;
118 | position: fixed;
119 | top: 70px;
120 | bottom: 0;
121 | width: 230px;
122 | word-wrap: normal; }
123 |
124 | .nav-groups {
125 | list-style-type: none;
126 | background: #fff;
127 | padding-left: 0; }
128 |
129 | .nav-group-name {
130 | border-bottom: 1px solid #e2e2e2;
131 | font-size: 1.1em;
132 | font-weight: 100;
133 | padding: 15px 0 15px 20px; }
134 | .nav-group-name > a {
135 | color: #333; }
136 |
137 | .nav-group-tasks {
138 | margin-top: 5px; }
139 |
140 | .nav-group-task {
141 | font-size: 0.9em;
142 | list-style-type: none;
143 | white-space: nowrap; }
144 | .nav-group-task a {
145 | color: #888; }
146 |
147 | .main-content {
148 | background-color: #fff;
149 | border: 1px solid #e2e2e2;
150 | margin-left: 246px;
151 | position: absolute;
152 | overflow: hidden;
153 | padding-bottom: 60px;
154 | top: 70px;
155 | width: 734px; }
156 | .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
157 | margin-bottom: 1em; }
158 | .main-content p {
159 | line-height: 1.8em; }
160 | .main-content section .section:first-child {
161 | margin-top: 0;
162 | padding-top: 0; }
163 | .main-content section .task-group-section .task-group:first-of-type {
164 | padding-top: 10px; }
165 | .main-content section .task-group-section .task-group:first-of-type .section-name {
166 | padding-top: 15px; }
167 | .main-content section .heading:before {
168 | content: "";
169 | display: block;
170 | padding-top: 70px;
171 | margin: -70px 0 0; }
172 |
173 | .section {
174 | padding: 0 25px; }
175 |
176 | .highlight {
177 | background-color: #eee;
178 | padding: 10px 12px;
179 | border: 1px solid #e2e2e2;
180 | border-radius: 4px;
181 | overflow-x: auto; }
182 |
183 | .declaration .highlight {
184 | overflow-x: initial;
185 | padding: 0 40px 40px 0;
186 | margin-bottom: -25px;
187 | background-color: transparent;
188 | border: none; }
189 |
190 | .section-name {
191 | margin: 0;
192 | margin-left: 18px; }
193 |
194 | .task-group-section {
195 | padding-left: 6px;
196 | border-top: 1px solid #e2e2e2; }
197 |
198 | .task-group {
199 | padding-top: 0px; }
200 |
201 | .task-name-container a[name]:before {
202 | content: "";
203 | display: block;
204 | padding-top: 70px;
205 | margin: -70px 0 0; }
206 |
207 | .item {
208 | padding-top: 8px;
209 | width: 100%;
210 | list-style-type: none; }
211 | .item a[name]:before {
212 | content: "";
213 | display: block;
214 | padding-top: 70px;
215 | margin: -70px 0 0; }
216 | .item code {
217 | background-color: transparent;
218 | padding: 0; }
219 | .item .token {
220 | padding-left: 3px;
221 | margin-left: 15px;
222 | font-size: 11.9px; }
223 | .item .declaration-note {
224 | font-size: .85em;
225 | color: gray;
226 | font-style: italic; }
227 |
228 | .pointer-container {
229 | border-bottom: 1px solid #e2e2e2;
230 | left: -23px;
231 | padding-bottom: 13px;
232 | position: relative;
233 | width: 110%; }
234 |
235 | .pointer {
236 | background: #f9f9f9;
237 | border-left: 1px solid #e2e2e2;
238 | border-top: 1px solid #e2e2e2;
239 | height: 12px;
240 | left: 21px;
241 | top: -7px;
242 | -webkit-transform: rotate(45deg);
243 | -moz-transform: rotate(45deg);
244 | -o-transform: rotate(45deg);
245 | transform: rotate(45deg);
246 | position: absolute;
247 | width: 12px; }
248 |
249 | .height-container {
250 | display: none;
251 | left: -25px;
252 | padding: 0 25px;
253 | position: relative;
254 | width: 100%;
255 | overflow: hidden; }
256 | .height-container .section {
257 | background: #f9f9f9;
258 | border-bottom: 1px solid #e2e2e2;
259 | left: -25px;
260 | position: relative;
261 | width: 100%;
262 | padding-top: 10px;
263 | padding-bottom: 5px; }
264 |
265 | .aside, .language {
266 | padding: 6px 12px;
267 | margin: 12px 0;
268 | border-left: 5px solid #dddddd;
269 | overflow-y: hidden; }
270 | .aside .aside-title, .language .aside-title {
271 | font-size: 9px;
272 | letter-spacing: 2px;
273 | text-transform: uppercase;
274 | padding-bottom: 0;
275 | margin: 0;
276 | color: #aaa;
277 | -webkit-user-select: none; }
278 | .aside p:last-child, .language p:last-child {
279 | margin-bottom: 0; }
280 |
281 | .language {
282 | border-left: 5px solid #cde9f4; }
283 | .language .aside-title {
284 | color: #4b8afb; }
285 |
286 | .aside-warning {
287 | border-left: 5px solid #ff6666; }
288 | .aside-warning .aside-title {
289 | color: #ff0000; }
290 |
291 | .graybox {
292 | border-collapse: collapse;
293 | width: 100%; }
294 | .graybox p {
295 | margin: 0;
296 | word-break: break-word;
297 | min-width: 50px; }
298 | .graybox td {
299 | border: 1px solid #e2e2e2;
300 | padding: 5px 25px 5px 10px;
301 | vertical-align: middle; }
302 | .graybox tr td:first-of-type {
303 | text-align: right;
304 | padding: 7px;
305 | vertical-align: top;
306 | word-break: normal;
307 | width: 40px; }
308 |
309 | .slightly-smaller {
310 | font-size: 0.9em; }
311 |
312 | #footer {
313 | position: absolute;
314 | bottom: 10px;
315 | margin-left: 25px; }
316 | #footer p {
317 | margin: 0;
318 | color: #aaa;
319 | font-size: 0.8em; }
320 |
321 | html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
322 | display: none; }
323 | html.dash .main-content {
324 | width: 980px;
325 | margin-left: 0;
326 | border: none;
327 | width: 100%;
328 | top: 0;
329 | padding-bottom: 0; }
330 | html.dash .height-container {
331 | display: block; }
332 | html.dash .item .token {
333 | margin-left: 0; }
334 | html.dash .content-wrapper {
335 | width: auto; }
336 | html.dash #footer {
337 | position: static; }
338 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleIdentifier
6 | com.jazzy.rxreduce
7 | CFBundleName
8 | RxReduce
9 | DocSetPlatformFamily
10 | rxreduce
11 | isDashDocset
12 |
13 | dashIndexFilePath
14 | index.html
15 | isJavaScriptEnabled
16 |
17 | DashDocSetFamily
18 | dashtoc
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Classes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Classes Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Classes Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Classes
80 | The following classes are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Store
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
A default store that will handle a specific kind of State
100 |
101 |
See more
102 |
103 |
104 |
Declaration
105 |
106 |
Swift
107 |
public final class Store < StateType > : StoreType where StateType : State
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
122 |
123 |
124 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Extensions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Extensions Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Extensions Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Extensions
80 | The following extensions are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Array
92 |
93 |
94 |
95 |
96 |
97 |
98 |
102 |
103 |
Declaration
104 |
105 |
Swift
106 |
struct Array < Element > : _DestructorSafeContainer
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
121 |
122 |
123 |
124 |
125 |
129 |
130 |
Declaration
131 |
132 |
Swift
133 |
class Observable < Element > : ObservableType
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
148 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Extensions/Array.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Array Extension Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Array Extension Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Array
80 |
81 |
82 |
struct Array < Element > : _DestructorSafeContainer
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
Declaration
108 |
109 |
Swift
110 |
public func toAsync () -> Observable < Action >
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Extensions/Observable.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Observable Extension Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Observable Extension Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Observable
80 |
81 |
82 |
class Observable < Element > : ObservableType
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
Declaration
108 |
109 |
Swift
110 |
public func toAsync () -> Observable < Action >
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Protocols.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Protocols Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Protocols Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Protocols
80 | The following protocols are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Action
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
Conform to an Action to mutate the State synchronously or asynchronously
100 | Arrays of Actions and Observable of Action are considered to be Actions as well
101 |
102 |
See more
103 |
104 |
105 |
Declaration
106 |
107 |
Swift
108 |
public protocol Action
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | State
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
Conform to the State protocol to be handled by a Store
133 |
134 |
135 |
136 |
Declaration
137 |
138 |
Swift
139 |
public protocol State
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | StoreType
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
A Store holds the state, mutate the state through actions / reducers and exposes the state via a Driver
164 | A Store is dedicated to a State Type
165 |
166 |
See more
167 |
168 |
169 |
Declaration
170 |
171 |
Swift
172 |
public protocol StoreType
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
187 |
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Protocols/Action.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Action Protocol Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Action Protocol Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Action
80 |
81 |
82 |
public protocol Action
83 |
84 |
85 |
86 | Conform to an Action to mutate the State synchronously or asynchronously
87 | Arrays of Actions and Observable of Action are considered to be Actions as well
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 | toAsync()
99 |
100 |
101 | Default implementation
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
Convert the action into an Observable so it is compliant with asynchronous processing
110 |
111 |
112 | Default Implementation
113 |
114 |
115 |
116 |
117 |
Declaration
118 |
119 |
Swift
120 |
func toAsync () -> Observable < Action >
121 |
122 |
123 |
124 |
125 |
Return Value
126 |
the asynchronous action
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
139 |
140 |
141 |
142 |
143 |
144 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/Typealiases.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Type Aliases Reference
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 | RxReduce Reference
23 |
24 | Type Aliases Reference
25 |
26 |
27 |
28 |
76 |
77 |
78 |
79 | Type Aliases
80 | The following type aliases are available globally.
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Reducer
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
A Reducer mutates an input state into an output state according to an action
100 |
101 |
102 |
103 |
Declaration
104 |
105 |
Swift
106 |
public typealias Reducer < StateType > = ( _ state : StateType ?, _ action : Action ) -> StateType
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
121 |
122 |
123 |
124 |
125 |
126 |
A Middleware has not effect on the state, it us just triggered by a dispatch action
127 |
128 |
129 |
130 |
Declaration
131 |
132 |
Swift
133 |
public typealias Middleware < StateType > = ( _ state : StateType ?, _ action : Action ) -> Void
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
148 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/badge.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | documentation
17 |
18 |
19 | documentation
20 |
21 |
22 | 100%
23 |
24 |
25 | 100%
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/css/highlight.css:
--------------------------------------------------------------------------------
1 | /* Credit to https://gist.github.com/wataru420/2048287 */
2 | .highlight {
3 | /* Comment */
4 | /* Error */
5 | /* Keyword */
6 | /* Operator */
7 | /* Comment.Multiline */
8 | /* Comment.Preproc */
9 | /* Comment.Single */
10 | /* Comment.Special */
11 | /* Generic.Deleted */
12 | /* Generic.Deleted.Specific */
13 | /* Generic.Emph */
14 | /* Generic.Error */
15 | /* Generic.Heading */
16 | /* Generic.Inserted */
17 | /* Generic.Inserted.Specific */
18 | /* Generic.Output */
19 | /* Generic.Prompt */
20 | /* Generic.Strong */
21 | /* Generic.Subheading */
22 | /* Generic.Traceback */
23 | /* Keyword.Constant */
24 | /* Keyword.Declaration */
25 | /* Keyword.Pseudo */
26 | /* Keyword.Reserved */
27 | /* Keyword.Type */
28 | /* Literal.Number */
29 | /* Literal.String */
30 | /* Name.Attribute */
31 | /* Name.Builtin */
32 | /* Name.Class */
33 | /* Name.Constant */
34 | /* Name.Entity */
35 | /* Name.Exception */
36 | /* Name.Function */
37 | /* Name.Namespace */
38 | /* Name.Tag */
39 | /* Name.Variable */
40 | /* Operator.Word */
41 | /* Text.Whitespace */
42 | /* Literal.Number.Float */
43 | /* Literal.Number.Hex */
44 | /* Literal.Number.Integer */
45 | /* Literal.Number.Oct */
46 | /* Literal.String.Backtick */
47 | /* Literal.String.Char */
48 | /* Literal.String.Doc */
49 | /* Literal.String.Double */
50 | /* Literal.String.Escape */
51 | /* Literal.String.Heredoc */
52 | /* Literal.String.Interpol */
53 | /* Literal.String.Other */
54 | /* Literal.String.Regex */
55 | /* Literal.String.Single */
56 | /* Literal.String.Symbol */
57 | /* Name.Builtin.Pseudo */
58 | /* Name.Variable.Class */
59 | /* Name.Variable.Global */
60 | /* Name.Variable.Instance */
61 | /* Literal.Number.Integer.Long */ }
62 | .highlight .c {
63 | color: #999988;
64 | font-style: italic; }
65 | .highlight .err {
66 | color: #a61717;
67 | background-color: #e3d2d2; }
68 | .highlight .k {
69 | color: #000000;
70 | font-weight: bold; }
71 | .highlight .o {
72 | color: #000000;
73 | font-weight: bold; }
74 | .highlight .cm {
75 | color: #999988;
76 | font-style: italic; }
77 | .highlight .cp {
78 | color: #999999;
79 | font-weight: bold; }
80 | .highlight .c1 {
81 | color: #999988;
82 | font-style: italic; }
83 | .highlight .cs {
84 | color: #999999;
85 | font-weight: bold;
86 | font-style: italic; }
87 | .highlight .gd {
88 | color: #000000;
89 | background-color: #ffdddd; }
90 | .highlight .gd .x {
91 | color: #000000;
92 | background-color: #ffaaaa; }
93 | .highlight .ge {
94 | color: #000000;
95 | font-style: italic; }
96 | .highlight .gr {
97 | color: #aa0000; }
98 | .highlight .gh {
99 | color: #999999; }
100 | .highlight .gi {
101 | color: #000000;
102 | background-color: #ddffdd; }
103 | .highlight .gi .x {
104 | color: #000000;
105 | background-color: #aaffaa; }
106 | .highlight .go {
107 | color: #888888; }
108 | .highlight .gp {
109 | color: #555555; }
110 | .highlight .gs {
111 | font-weight: bold; }
112 | .highlight .gu {
113 | color: #aaaaaa; }
114 | .highlight .gt {
115 | color: #aa0000; }
116 | .highlight .kc {
117 | color: #000000;
118 | font-weight: bold; }
119 | .highlight .kd {
120 | color: #000000;
121 | font-weight: bold; }
122 | .highlight .kp {
123 | color: #000000;
124 | font-weight: bold; }
125 | .highlight .kr {
126 | color: #000000;
127 | font-weight: bold; }
128 | .highlight .kt {
129 | color: #445588; }
130 | .highlight .m {
131 | color: #009999; }
132 | .highlight .s {
133 | color: #d14; }
134 | .highlight .na {
135 | color: #008080; }
136 | .highlight .nb {
137 | color: #0086B3; }
138 | .highlight .nc {
139 | color: #445588;
140 | font-weight: bold; }
141 | .highlight .no {
142 | color: #008080; }
143 | .highlight .ni {
144 | color: #800080; }
145 | .highlight .ne {
146 | color: #990000;
147 | font-weight: bold; }
148 | .highlight .nf {
149 | color: #990000; }
150 | .highlight .nn {
151 | color: #555555; }
152 | .highlight .nt {
153 | color: #000080; }
154 | .highlight .nv {
155 | color: #008080; }
156 | .highlight .ow {
157 | color: #000000;
158 | font-weight: bold; }
159 | .highlight .w {
160 | color: #bbbbbb; }
161 | .highlight .mf {
162 | color: #009999; }
163 | .highlight .mh {
164 | color: #009999; }
165 | .highlight .mi {
166 | color: #009999; }
167 | .highlight .mo {
168 | color: #009999; }
169 | .highlight .sb {
170 | color: #d14; }
171 | .highlight .sc {
172 | color: #d14; }
173 | .highlight .sd {
174 | color: #d14; }
175 | .highlight .s2 {
176 | color: #d14; }
177 | .highlight .se {
178 | color: #d14; }
179 | .highlight .sh {
180 | color: #d14; }
181 | .highlight .si {
182 | color: #d14; }
183 | .highlight .sx {
184 | color: #d14; }
185 | .highlight .sr {
186 | color: #009926; }
187 | .highlight .s1 {
188 | color: #d14; }
189 | .highlight .ss {
190 | color: #990073; }
191 | .highlight .bp {
192 | color: #999999; }
193 | .highlight .vc {
194 | color: #008080; }
195 | .highlight .vg {
196 | color: #008080; }
197 | .highlight .vi {
198 | color: #008080; }
199 | .highlight .il {
200 | color: #009999; }
201 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/css/jazzy.css:
--------------------------------------------------------------------------------
1 | html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
2 | background: transparent;
3 | border: 0;
4 | margin: 0;
5 | outline: 0;
6 | padding: 0;
7 | vertical-align: baseline; }
8 |
9 | body {
10 | background-color: #f2f2f2;
11 | font-family: Helvetica, freesans, Arial, sans-serif;
12 | font-size: 14px;
13 | -webkit-font-smoothing: subpixel-antialiased;
14 | word-wrap: break-word; }
15 |
16 | h1, h2, h3 {
17 | margin-top: 0.8em;
18 | margin-bottom: 0.3em;
19 | font-weight: 100;
20 | color: black; }
21 |
22 | h1 {
23 | font-size: 2.5em; }
24 |
25 | h2 {
26 | font-size: 2em;
27 | border-bottom: 1px solid #e2e2e2; }
28 |
29 | h4 {
30 | font-size: 13px;
31 | line-height: 1.5;
32 | margin-top: 21px; }
33 |
34 | h5 {
35 | font-size: 1.1em; }
36 |
37 | h6 {
38 | font-size: 1.1em;
39 | color: #777; }
40 |
41 | .section-name {
42 | color: gray;
43 | display: block;
44 | font-family: Helvetica;
45 | font-size: 22px;
46 | font-weight: 100;
47 | margin-bottom: 15px; }
48 |
49 | pre, code {
50 | font: 0.95em Menlo, monospace;
51 | color: #777;
52 | word-wrap: normal; }
53 |
54 | p code, li code {
55 | background-color: #eee;
56 | padding: 2px 4px;
57 | border-radius: 4px; }
58 |
59 | a {
60 | color: #0088cc;
61 | text-decoration: none; }
62 |
63 | ul {
64 | padding-left: 15px; }
65 |
66 | li {
67 | line-height: 1.8em; }
68 |
69 | img {
70 | max-width: 100%; }
71 |
72 | blockquote {
73 | margin-left: 0;
74 | padding: 0 10px;
75 | border-left: 4px solid #ccc; }
76 |
77 | .content-wrapper {
78 | margin: 0 auto;
79 | width: 980px; }
80 |
81 | header {
82 | font-size: 0.85em;
83 | line-height: 26px;
84 | background-color: #414141;
85 | position: fixed;
86 | width: 100%;
87 | z-index: 1; }
88 | header img {
89 | padding-right: 6px;
90 | vertical-align: -4px;
91 | height: 16px; }
92 | header a {
93 | color: #fff; }
94 | header p {
95 | float: left;
96 | color: #999; }
97 | header .header-right {
98 | float: right;
99 | margin-left: 16px; }
100 |
101 | #breadcrumbs {
102 | background-color: #f2f2f2;
103 | height: 27px;
104 | padding-top: 17px;
105 | position: fixed;
106 | width: 100%;
107 | z-index: 1;
108 | margin-top: 26px; }
109 | #breadcrumbs #carat {
110 | height: 10px;
111 | margin: 0 5px; }
112 |
113 | .sidebar {
114 | background-color: #f9f9f9;
115 | border: 1px solid #e2e2e2;
116 | overflow-y: auto;
117 | overflow-x: hidden;
118 | position: fixed;
119 | top: 70px;
120 | bottom: 0;
121 | width: 230px;
122 | word-wrap: normal; }
123 |
124 | .nav-groups {
125 | list-style-type: none;
126 | background: #fff;
127 | padding-left: 0; }
128 |
129 | .nav-group-name {
130 | border-bottom: 1px solid #e2e2e2;
131 | font-size: 1.1em;
132 | font-weight: 100;
133 | padding: 15px 0 15px 20px; }
134 | .nav-group-name > a {
135 | color: #333; }
136 |
137 | .nav-group-tasks {
138 | margin-top: 5px; }
139 |
140 | .nav-group-task {
141 | font-size: 0.9em;
142 | list-style-type: none;
143 | white-space: nowrap; }
144 | .nav-group-task a {
145 | color: #888; }
146 |
147 | .main-content {
148 | background-color: #fff;
149 | border: 1px solid #e2e2e2;
150 | margin-left: 246px;
151 | position: absolute;
152 | overflow: hidden;
153 | padding-bottom: 60px;
154 | top: 70px;
155 | width: 734px; }
156 | .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
157 | margin-bottom: 1em; }
158 | .main-content p {
159 | line-height: 1.8em; }
160 | .main-content section .section:first-child {
161 | margin-top: 0;
162 | padding-top: 0; }
163 | .main-content section .task-group-section .task-group:first-of-type {
164 | padding-top: 10px; }
165 | .main-content section .task-group-section .task-group:first-of-type .section-name {
166 | padding-top: 15px; }
167 | .main-content section .heading:before {
168 | content: "";
169 | display: block;
170 | padding-top: 70px;
171 | margin: -70px 0 0; }
172 |
173 | .section {
174 | padding: 0 25px; }
175 |
176 | .highlight {
177 | background-color: #eee;
178 | padding: 10px 12px;
179 | border: 1px solid #e2e2e2;
180 | border-radius: 4px;
181 | overflow-x: auto; }
182 |
183 | .declaration .highlight {
184 | overflow-x: initial;
185 | padding: 0 40px 40px 0;
186 | margin-bottom: -25px;
187 | background-color: transparent;
188 | border: none; }
189 |
190 | .section-name {
191 | margin: 0;
192 | margin-left: 18px; }
193 |
194 | .task-group-section {
195 | padding-left: 6px;
196 | border-top: 1px solid #e2e2e2; }
197 |
198 | .task-group {
199 | padding-top: 0px; }
200 |
201 | .task-name-container a[name]:before {
202 | content: "";
203 | display: block;
204 | padding-top: 70px;
205 | margin: -70px 0 0; }
206 |
207 | .item {
208 | padding-top: 8px;
209 | width: 100%;
210 | list-style-type: none; }
211 | .item a[name]:before {
212 | content: "";
213 | display: block;
214 | padding-top: 70px;
215 | margin: -70px 0 0; }
216 | .item code {
217 | background-color: transparent;
218 | padding: 0; }
219 | .item .token {
220 | padding-left: 3px;
221 | margin-left: 15px;
222 | font-size: 11.9px; }
223 | .item .declaration-note {
224 | font-size: .85em;
225 | color: gray;
226 | font-style: italic; }
227 |
228 | .pointer-container {
229 | border-bottom: 1px solid #e2e2e2;
230 | left: -23px;
231 | padding-bottom: 13px;
232 | position: relative;
233 | width: 110%; }
234 |
235 | .pointer {
236 | background: #f9f9f9;
237 | border-left: 1px solid #e2e2e2;
238 | border-top: 1px solid #e2e2e2;
239 | height: 12px;
240 | left: 21px;
241 | top: -7px;
242 | -webkit-transform: rotate(45deg);
243 | -moz-transform: rotate(45deg);
244 | -o-transform: rotate(45deg);
245 | transform: rotate(45deg);
246 | position: absolute;
247 | width: 12px; }
248 |
249 | .height-container {
250 | display: none;
251 | left: -25px;
252 | padding: 0 25px;
253 | position: relative;
254 | width: 100%;
255 | overflow: hidden; }
256 | .height-container .section {
257 | background: #f9f9f9;
258 | border-bottom: 1px solid #e2e2e2;
259 | left: -25px;
260 | position: relative;
261 | width: 100%;
262 | padding-top: 10px;
263 | padding-bottom: 5px; }
264 |
265 | .aside, .language {
266 | padding: 6px 12px;
267 | margin: 12px 0;
268 | border-left: 5px solid #dddddd;
269 | overflow-y: hidden; }
270 | .aside .aside-title, .language .aside-title {
271 | font-size: 9px;
272 | letter-spacing: 2px;
273 | text-transform: uppercase;
274 | padding-bottom: 0;
275 | margin: 0;
276 | color: #aaa;
277 | -webkit-user-select: none; }
278 | .aside p:last-child, .language p:last-child {
279 | margin-bottom: 0; }
280 |
281 | .language {
282 | border-left: 5px solid #cde9f4; }
283 | .language .aside-title {
284 | color: #4b8afb; }
285 |
286 | .aside-warning {
287 | border-left: 5px solid #ff6666; }
288 | .aside-warning .aside-title {
289 | color: #ff0000; }
290 |
291 | .graybox {
292 | border-collapse: collapse;
293 | width: 100%; }
294 | .graybox p {
295 | margin: 0;
296 | word-break: break-word;
297 | min-width: 50px; }
298 | .graybox td {
299 | border: 1px solid #e2e2e2;
300 | padding: 5px 25px 5px 10px;
301 | vertical-align: middle; }
302 | .graybox tr td:first-of-type {
303 | text-align: right;
304 | padding: 7px;
305 | vertical-align: top;
306 | word-break: normal;
307 | width: 40px; }
308 |
309 | .slightly-smaller {
310 | font-size: 0.9em; }
311 |
312 | #footer {
313 | position: absolute;
314 | bottom: 10px;
315 | margin-left: 25px; }
316 | #footer p {
317 | margin: 0;
318 | color: #aaa;
319 | font-size: 0.8em; }
320 |
321 | html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
322 | display: none; }
323 | html.dash .main-content {
324 | width: 980px;
325 | margin-left: 0;
326 | border: none;
327 | width: 100%;
328 | top: 0;
329 | padding-bottom: 0; }
330 | html.dash .height-container {
331 | display: block; }
332 | html.dash .item .token {
333 | margin-left: 0; }
334 | html.dash .content-wrapper {
335 | width: auto; }
336 | html.dash #footer {
337 | position: static; }
338 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/carat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/carat.png
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/dash.png
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/gh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/docsets/RxReduce.docset/Contents/Resources/Documents/img/gh.png
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/js/jazzy.js:
--------------------------------------------------------------------------------
1 | window.jazzy = {'docset': false}
2 | if (typeof window.dash != 'undefined') {
3 | document.documentElement.className += ' dash'
4 | window.jazzy.docset = true
5 | }
6 | if (navigator.userAgent.match(/xcode/i)) {
7 | document.documentElement.className += ' xcode'
8 | window.jazzy.docset = true
9 | }
10 |
11 | // On doc load, toggle the URL hash discussion if present
12 | $(document).ready(function() {
13 | if (!window.jazzy.docset) {
14 | var linkToHash = $('a[href="' + window.location.hash +'"]');
15 | linkToHash.trigger("click");
16 | }
17 | });
18 |
19 | // On token click, toggle its discussion and animate token.marginLeft
20 | $(".token").click(function(event) {
21 | if (window.jazzy.docset) {
22 | return;
23 | }
24 | var link = $(this);
25 | var animationDuration = 300;
26 | var tokenOffset = "15px";
27 | var original = link.css('marginLeft') == tokenOffset;
28 | link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
29 | $content = link.parent().parent().next();
30 | $content.slideToggle(animationDuration);
31 |
32 | // Keeps the document from jumping to the hash.
33 | var href = $(this).attr('href');
34 | if (history.pushState) {
35 | history.pushState({}, '', href);
36 | } else {
37 | location.hash = href;
38 | }
39 | event.preventDefault();
40 | });
41 |
42 | // Dumb down quotes within code blocks that delimit strings instead of quotations
43 | // https://github.com/realm/jazzy/issues/714
44 | $("code q").replaceWith(function () {
45 | return ["\"", $(this).contents(), "\""];
46 | });
47 |
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/search.json:
--------------------------------------------------------------------------------
1 | {"Typealiases.html#/s:8RxReduce7Reducera":{"name":"Reducer","abstract":"A Reducer mutates an input state into an output state according to an action
"},"Typealiases.html#/s:8RxReduce10Middlewarea":{"name":"Middleware","abstract":"A Middleware has not effect on the state, it us just triggered by a dispatch action
"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP05StateD0":{"name":"StateType","abstract":"A store is dedicated to the mutation/observation of this StateType
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_tlF":{"name":"state(from:)","abstract":"The current State or SubState (UI compliant)
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_ts9EquatableRd__lF":{"name":"state(from:)","abstract":"The current State or SubState (UI compliant), avoiding duplicate notifications in case of state equality
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypePxs15ContiguousArrayVy05StateD0QzAGSg_AA6Action_ptcG12withReducers_AEyyAH_AaI_ptcGSg0I11Middlewarestcfc":{"name":"init(withReducers:withMiddlewares:)","abstract":"Inits the Store with its reducers stack
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP8dispatchyAA6Action_p6action_tF":{"name":"dispatch(action:)","abstract":"Dispatch an action through the reducers to mutate the state
","parent_name":"StoreType"},"Protocols/Action.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","abstract":"Convert the action into an Observable so it is compliant with asynchronous processing
","parent_name":"Action"},"Protocols/Action.html":{"name":"Action","abstract":"Conform to an Action to mutate the State synchronously or asynchronously"},"Protocols.html#/s:8RxReduce5StateP":{"name":"State","abstract":"
Conform to the State protocol to be handled by a Store
"},"Protocols/StoreType.html":{"name":"StoreType","abstract":"A Store holds the state, mutate the state through actions / reducers and exposes the state via a Driver"},"Extensions/Observable.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","parent_name":"Observable"},"Extensions/Array.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions/Observable.html":{"name":"Observable"},"Classes/Store.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_tlF":{"name":"state(from:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_ts9EquatableRd__lF":{"name":"state(from:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypePxs15ContiguousArrayVy05StateD0QzAGSg_AA6Action_ptcG12withReducers_AEyyAH_AaI_ptcGSg0I11Middlewarestcfc":{"name":"init(withReducers:withMiddlewares:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypeP8dispatchyAA6Action_p6action_tF":{"name":"dispatch(action:)","parent_name":"Store"},"Classes/Store.html":{"name":"Store","abstract":"
A default store that will handle a specific kind of State
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/Documents/undocumented.json:
--------------------------------------------------------------------------------
1 | {
2 | "warnings": [
3 |
4 | ],
5 | "source_directory": "/Users/thibaultwittemberg/Development/RxReduce"
6 | }
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.docset/Contents/Resources/docSet.dsidx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/docsets/RxReduce.docset/Contents/Resources/docSet.dsidx
--------------------------------------------------------------------------------
/docs/docsets/RxReduce.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/docsets/RxReduce.tgz
--------------------------------------------------------------------------------
/docs/img/carat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/img/carat.png
--------------------------------------------------------------------------------
/docs/img/dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/img/dash.png
--------------------------------------------------------------------------------
/docs/img/gh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RxSwiftCommunity/RxReduce/e67b339885f17c9191706478926e96fc230de148/docs/img/gh.png
--------------------------------------------------------------------------------
/docs/js/jazzy.js:
--------------------------------------------------------------------------------
1 | window.jazzy = {'docset': false}
2 | if (typeof window.dash != 'undefined') {
3 | document.documentElement.className += ' dash'
4 | window.jazzy.docset = true
5 | }
6 | if (navigator.userAgent.match(/xcode/i)) {
7 | document.documentElement.className += ' xcode'
8 | window.jazzy.docset = true
9 | }
10 |
11 | // On doc load, toggle the URL hash discussion if present
12 | $(document).ready(function() {
13 | if (!window.jazzy.docset) {
14 | var linkToHash = $('a[href="' + window.location.hash +'"]');
15 | linkToHash.trigger("click");
16 | }
17 | });
18 |
19 | // On token click, toggle its discussion and animate token.marginLeft
20 | $(".token").click(function(event) {
21 | if (window.jazzy.docset) {
22 | return;
23 | }
24 | var link = $(this);
25 | var animationDuration = 300;
26 | var tokenOffset = "15px";
27 | var original = link.css('marginLeft') == tokenOffset;
28 | link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
29 | $content = link.parent().parent().next();
30 | $content.slideToggle(animationDuration);
31 |
32 | // Keeps the document from jumping to the hash.
33 | var href = $(this).attr('href');
34 | if (history.pushState) {
35 | history.pushState({}, '', href);
36 | } else {
37 | location.hash = href;
38 | }
39 | event.preventDefault();
40 | });
41 |
42 | // Dumb down quotes within code blocks that delimit strings instead of quotations
43 | // https://github.com/realm/jazzy/issues/714
44 | $("code q").replaceWith(function () {
45 | return ["\"", $(this).contents(), "\""];
46 | });
47 |
--------------------------------------------------------------------------------
/docs/search.json:
--------------------------------------------------------------------------------
1 | {"Typealiases.html#/s:8RxReduce7Reducera":{"name":"Reducer","abstract":"A Reducer mutates an input state into an output state according to an action
"},"Typealiases.html#/s:8RxReduce10Middlewarea":{"name":"Middleware","abstract":"A Middleware has not effect on the state, it us just triggered by a dispatch action
"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP05StateD0":{"name":"StateType","abstract":"A store is dedicated to the mutation/observation of this StateType
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_tlF":{"name":"state(from:)","abstract":"The current State or SubState (UI compliant)
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_ts9EquatableRd__lF":{"name":"state(from:)","abstract":"The current State or SubState (UI compliant), avoiding duplicate notifications in case of state equality
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypePxs15ContiguousArrayVy05StateD0QzAGSg_AA6Action_ptcG12withReducers_AEyyAH_AaI_ptcGSg0I11Middlewarestcfc":{"name":"init(withReducers:withMiddlewares:)","abstract":"Inits the Store with its reducers stack
","parent_name":"StoreType"},"Protocols/StoreType.html#/s:8RxReduce9StoreTypeP8dispatchyAA6Action_p6action_tF":{"name":"dispatch(action:)","abstract":"Dispatch an action through the reducers to mutate the state
","parent_name":"StoreType"},"Protocols/Action.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","abstract":"Convert the action into an Observable so it is compliant with asynchronous processing
","parent_name":"Action"},"Protocols/Action.html":{"name":"Action","abstract":"Conform to an Action to mutate the State synchronously or asynchronously"},"Protocols.html#/s:8RxReduce5StateP":{"name":"State","abstract":"
Conform to the State protocol to be handled by a Store
"},"Protocols/StoreType.html":{"name":"StoreType","abstract":"A Store holds the state, mutate the state through actions / reducers and exposes the state via a Driver"},"Extensions/Observable.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","parent_name":"Observable"},"Extensions/Array.html#/s:8RxReduce6ActionP7toAsync0A5Swift10ObservableCyAaB_pGyF":{"name":"toAsync()","parent_name":"Array"},"Extensions/Array.html":{"name":"Array"},"Extensions/Observable.html":{"name":"Observable"},"Classes/Store.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_tlF":{"name":"state(from:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypeP5state0A5Cocoa14SharedSequenceVyAE21DriverSharingStrategyVqd__Gqd__05StateD0Qzc4from_ts9EquatableRd__lF":{"name":"state(from:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypePxs15ContiguousArrayVy05StateD0QzAGSg_AA6Action_ptcG12withReducers_AEyyAH_AaI_ptcGSg0I11Middlewarestcfc":{"name":"init(withReducers:withMiddlewares:)","parent_name":"Store"},"Classes/Store.html#/s:8RxReduce9StoreTypeP8dispatchyAA6Action_p6action_tF":{"name":"dispatch(action:)","parent_name":"Store"},"Classes/Store.html":{"name":"Store","abstract":"
A default store that will handle a specific kind of State
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
--------------------------------------------------------------------------------