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/callbacks_dependencies.ex
defmodule BinStruct.Macro.Dependencies.CallbacksDependencies do
@moduledoc false
alias BinStruct.Macro.Structs.RegisteredCallbackFieldArgument
alias BinStruct.Macro.Structs.RegisteredCallback
alias BinStruct.Macro.Structs.RegisteredCallbackOptionArgument
alias BinStruct.Macro.Structs.DependencyOnField
alias BinStruct.Macro.Structs.DependencyOnOption
def dependencies(registered_callbacks) do
Enum.map(
registered_callbacks,
fn registered_callback ->
%RegisteredCallback{ arguments: arguments } = registered_callback
Enum.map(
arguments,
fn argument ->
case argument do
%RegisteredCallbackFieldArgument{} = field_argument ->
%RegisteredCallbackFieldArgument{
field: field,
type_conversion: type_conversion
} = field_argument
%DependencyOnField{
field: field,
type_conversion: type_conversion
}
%RegisteredCallbackOptionArgument{} = option_argument ->
%RegisteredCallbackOptionArgument{
registered_option: registered_option
} = option_argument
%DependencyOnOption{
option: registered_option
}
end
end
)
end
) |> List.flatten()
end
end