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/is_field_dependent_on.ex
defmodule BinStruct.Macro.Dependencies.IsFieldDependentOn do
@moduledoc false
alias BinStruct.Macro.Structs.DependencyOnOption
alias BinStruct.Macro.Structs.DependencyOnField
alias BinStruct.Macro.Structs.Field
alias BinStruct.Macro.Structs.VirtualField
def is_field_dependent_on(dependencies, field) do
%Field{ name: name } = field
Enum.any?(
dependencies,
fn dependency ->
case dependency do
%DependencyOnOption{} -> false
%DependencyOnField{ field: field_from_dependency } ->
case field_from_dependency do
%Field{name: ^name} -> true
%VirtualField{} -> false
end
end
end
)
end
end