Packages
BinStruct is a library which provides you rich set of tools for parsing/encoding binaries
Current section
Files
Jump to
Current section
Files
lib/bin_struct/macro/dependencies/parse_dependencies.ex
defmodule BinStruct.Macro.Dependencies.ParseDependencies do
@moduledoc false
alias BinStruct.Macro.CallbacksOnField
alias BinStruct.Macro.Dependencies.CallbacksDependencies
alias BinStruct.Macro.Dependencies.ExcludeDependenciesOnField
alias BinStruct.Macro.Dependencies.UniqueDeps
def parse_dependencies_excluded_self(fields, registered_callbacks_map) do
self_excluded_dependencies =
Enum.map(
fields,
fn field ->
callbacks = CallbacksOnField.callbacks_used_while_parsing(field, registered_callbacks_map)
dependencies = CallbacksDependencies.dependencies(callbacks)
ExcludeDependenciesOnField.exclude_dependencies_on_field(dependencies, field)
end
)
|> List.flatten()
UniqueDeps.unique_dependencies(self_excluded_dependencies)
end
end