bcdd-result 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,47 @@
1
+ class BCDD::Result
2
+ class Handler
3
+ UNDEFINED: Object
4
+
5
+ def initialize: (
6
+ BCDD::Result,
7
+ type_checker: BCDD::Result::Contract::TypeChecker
8
+ ) -> void
9
+
10
+ def []: (*Symbol) { (untyped, Symbol) -> void } -> untyped
11
+ def failure: (*Symbol) { (untyped, Symbol) -> void } -> untyped
12
+ def success: (*Symbol) { (untyped, Symbol) -> void } -> untyped
13
+ def unknown: () { (untyped, Symbol) -> void } -> untyped
14
+
15
+ alias type []
16
+
17
+ private
18
+
19
+ attr_reader result: BCDD::Result
20
+ attr_reader allowed_types: BCDD::Result::Handler::AllowedTypes
21
+
22
+ def outcome?: -> bool
23
+ def outcome=: (Proc) -> void
24
+ def outcome: -> untyped
25
+ end
26
+ end
27
+
28
+ class BCDD::Result::Handler
29
+ class AllowedTypes
30
+ attr_reader unchecked: Set[Symbol]
31
+ attr_reader type_checker: BCDD::Result::Contract::TypeChecker
32
+
33
+ def initialize: (
34
+ BCDD::Result::Contract::TypeChecker
35
+ ) -> void
36
+
37
+ def allow?: (Array[Symbol]) -> bool
38
+ def allow_success?: (Array[Symbol]) -> bool
39
+ def allow_failure?: (Array[Symbol]) -> bool
40
+
41
+ def all_checked?: -> bool
42
+
43
+ private
44
+
45
+ def check!: (Array[Symbol], bool) -> bool
46
+ end
47
+ end
@@ -0,0 +1,37 @@
1
+ class BCDD::Result
2
+ module Mixin
3
+ module Factory
4
+ def self.module!: -> Module
5
+ end
6
+
7
+ module Methods
8
+ def Success: (Symbol type, ?untyped value) -> BCDD::Result::Success
9
+
10
+ def Failure: (Symbol type, ?untyped value) -> BCDD::Result::Failure
11
+
12
+ private
13
+
14
+ def _ResultAs: (singleton(BCDD::Result), Symbol, untyped, ?halted: bool) -> untyped
15
+ end
16
+
17
+ module Addons
18
+ module Continuable
19
+ include BCDD::Result::Mixin::Methods
20
+
21
+ private
22
+
23
+ def Continue: (untyped) -> BCDD::Result::Success
24
+ end
25
+
26
+ OPTIONS: Hash[Symbol, Module]
27
+
28
+ def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
29
+ end
30
+ end
31
+
32
+ def self.mixin: (?config: Hash[Symbol, Hash[Symbol, bool]]) -> Module
33
+
34
+ def self.mixin_module: -> singleton(BCDD::Result::Mixin)
35
+
36
+ def self.result_factory: -> singleton(BCDD::Result)
37
+ end
@@ -0,0 +1,89 @@
1
+ class BCDD::Result
2
+ module Transitions
3
+ class Tree
4
+ class Node
5
+ attr_reader id: Integer
6
+ attr_reader value: untyped
7
+ attr_reader parent: (Node | nil)
8
+ attr_reader normalizer: ^(Integer, Array[untyped]) -> untyped
9
+ attr_reader children: Array[Node]
10
+
11
+ def initialize: (
12
+ untyped value,
13
+ parent: (Node | nil),
14
+ id: Integer,
15
+ normalizer: ^(Integer, Array[untyped]) -> untyped
16
+ ) -> void
17
+
18
+ def insert: (untyped, id: Integer) -> Node
19
+
20
+ def root?: () -> bool
21
+ def leaf?: () -> bool
22
+ def node?: () -> bool
23
+ def inspect: () -> String
24
+ end
25
+
26
+ attr_reader size: Integer
27
+ attr_reader root: Node
28
+ attr_reader current: Node
29
+
30
+ def initialize: (untyped, ?normalizer: ^(Integer, Array[untyped]) -> untyped) -> void
31
+ def root_value: () -> untyped
32
+ def parent_value: () -> untyped
33
+ def current_value: () -> untyped
34
+ def insert: (untyped) -> Node
35
+ def insert!: (untyped) -> Node
36
+ def move_up!: (?Integer level) -> Tree
37
+ def move_down!: (?Integer level) -> Tree
38
+ def move_to_root!: () -> Tree
39
+
40
+ NestedIds: ^(Node) -> Array[untyped]
41
+
42
+ def nested_ids: () -> Array[untyped]
43
+ end
44
+
45
+ module Tracking
46
+ EMPTY_ARRAY: Array[untyped]
47
+ EMPTY_HASH: Hash[untyped, untyped]
48
+ EMPTY_TREE: Transitions::Tree
49
+ VERSION: Integer
50
+ EMPTY: Hash[Symbol, untyped]
51
+
52
+ class Enabled
53
+ private attr_accessor tree: Transitions::Tree
54
+ private attr_accessor records: Array[Hash[Symbol, untyped]]
55
+ private attr_accessor root_started_at: Integer
56
+
57
+ def start: (name: String, desc: String) -> void
58
+ def finish: (result: BCDD::Result) -> void
59
+ def reset!: () -> void
60
+ def record: (BCDD::Result) -> void
61
+ def record_and_then: ((untyped), untyped, untyped) { () -> BCDD::Result } -> BCDD::Result
62
+
63
+ private
64
+
65
+ TreeNodeValueNormalizer: ^(Integer, Array[untyped]) -> untyped
66
+
67
+ def root_start: (Array[untyped]) -> void
68
+
69
+ def track: (BCDD::Result, time: Time) -> void
70
+
71
+ def now_in_milliseconds: () -> Integer
72
+ end
73
+
74
+ module Disabled
75
+ def self.start: (name: String, desc: String) -> void
76
+ def self.finish: (result: BCDD::Result) -> void
77
+ def self.reset!: () -> void
78
+ def self.record: (BCDD::Result) -> void
79
+ def self.record_and_then: ((untyped), untyped, untyped) { () -> BCDD::Result } -> BCDD::Result
80
+ end
81
+
82
+ def self.instance: () -> (Enabled | singleton(Disabled))
83
+ end
84
+
85
+ THREAD_VAR_NAME: Symbol
86
+
87
+ def self.tracking: () -> (Tracking::Enabled | singleton(Tracking::Disabled))
88
+ end
89
+ end
@@ -0,0 +1,5 @@
1
+ module BCDD
2
+ class Result
3
+ VERSION: String
4
+ end
5
+ end