Merge pull request #2 from 0xLeif/develop 0.0.2
Merge pull request #2 from 0xLeif/develop
0.0.2
This is a work in progress project to experiment with Chain and E.num in useful ways.
public enum Variable: Hashable { case void case bool(Bool) case int(Int) case float(Float) case double(Double) case string(String) case set(Set<Variable>) case array([Variable]) case dictionary([Variable: Variable]) }
public enum Function { case void(() -> ()) case `in`((Variable) -> ()) case out(() -> Variable) case `inout`((Variable) -> Variable) }
public indirect enum Chain { case end case complete(E.Function?) case link(E.Function, Chain) case background(E.Function, Chain) case multi([Chain]) }
let observedValue: ObservedValue<Int> = ObservedValue() observedValue.didChangeHandler = .complete( .void { sleep(1) print("Done!") XCTAssertNotNil(observedValue.value) } ) observedValue.update(value: 5) observedValue.update(value: 15) observedValue.update(value: 25)
@Observed var index = 4 _index.didChangeHandler = .link( .void { viewModel.update(value: values[index]) }, .complete( .void { updateUI() } ) ) guard values.count < index && index >= 0 else { return } index += 1
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Observation
What is this
This is a work in progress project to experiment with Chain and E.num in useful ways.
Dependencies
E.num
Variable
Function
Chain
Example Code
Property Wrapper