bcdd-result 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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