当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Protocol.consolidate用法及代码示例


Elixir语言中 Protocol.consolidate 相关用法介绍如下。

用法:

consolidate(protocol, types)
@spec consolidate(module(), [module()]) ::
  {:ok, binary()} | {:error, :not_a_protocol} | {:error, :no_beam_info}

接收协议和实现列表并合并给定的协议。

通过以抽象格式更改协议impl_for 以具有快速查找规则来进行合并。通常在合并期间使用的实现列表是在 extract_impls/2 的帮助下检索的。

它返回协议字节码的更新版本。如果元组的第一个元素是 :ok ,则表示协议已合并。

通过分析协议属性,可以检查给定的字节码或协议实现是否被合并:

Protocol.consolidated?(Enumerable)

此函数在任何时候都不会加载协议,也不会加载已编译模块的新字节码。但是,每个实现都必须可用并且将被加载。

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Protocol.consolidate(protocol, types)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。