Module: Jade::Frontend::TypeChecking::Constraints::Deriving
- Extended by:
- Deriving
- Included in:
- Deriving
- Defined in:
- lib/jade/frontend/type_checking/constraints/deriving.rb,
lib/jade/frontend/type_checking/constraints/deriving/eq.rb,
lib/jade/frontend/type_checking/constraints/deriving/show.rb,
lib/jade/frontend/type_checking/constraints/deriving/helpers.rb,
lib/jade/frontend/type_checking/constraints/deriving/decodable.rb,
lib/jade/frontend/type_checking/constraints/deriving/encodable.rb
Defined Under Namespace
Modules: Decodable, Encodable, Eq, Helpers, Show
Constant Summary
collapse
- BUILTIN =
[Eq, Show, Decodable, Encodable].freeze
Instance Method Summary
collapse
Instance Method Details
#derivable?(interface) ⇒ Boolean
18
19
20
|
# File 'lib/jade/frontend/type_checking/constraints/deriving.rb', line 18
def derivable?(interface)
derivers.any? { it.supports?(interface) }
end
|
#derive(constraint, registry, entry_name, &lookup) ⇒ Object
22
23
24
25
26
|
# File 'lib/jade/frontend/type_checking/constraints/deriving.rb', line 22
def derive(constraint, registry, entry_name, &lookup)
derivers
.find { it.supports?(constraint.interface) }
.then { it.derive(constraint, registry, entry_name, &lookup) }
end
|