Current section

Files

Jump to
bin_struct lib bin_struct macro dependencies interface_implementations_dependencies.ex
Raw

lib/bin_struct/macro/dependencies/interface_implementations_dependencies.ex

defmodule BinStruct.Macro.Dependencies.InterfaceImplementationDependencies do
@moduledoc false
alias BinStruct.Macro.Dependencies.CallbacksDependencies
alias BinStruct.Macro.Dependencies.UniqueDeps
alias BinStruct.Macro.Structs.InterfaceImplementation
alias BinStruct.Macro.Structs.RegisteredCallbacksMap
def interface_implementations_dependencies(interface_implementations, registered_callbacks_map) do
interface_implementations_callbacks =
Enum.map(
interface_implementations,
fn %InterfaceImplementation{callback: callback} ->
RegisteredCallbacksMap.get_registered_callback_by_callback(registered_callbacks_map, callback)
end
)
CallbacksDependencies.dependencies(interface_implementations_callbacks)
|> UniqueDeps.unique_dependencies()
end
end