Packages
floki
0.30.0
0.38.4
0.38.3
0.38.2
0.38.1
0.38.0
0.37.1
0.37.0
0.36.3
0.36.2
0.36.1
0.36.0
0.35.4
0.35.3
0.35.2
0.35.1
0.35.0
0.34.3
0.34.2
0.34.1
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.1
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Floki is a simple HTML parser that enables search for nodes using CSS selectors.
Current section
Files
Jump to
Current section
Files
lib/floki/selector/combinator.ex
defmodule Floki.Selector.Combinator do
@moduledoc false
# Represents the conjunction of a combinator with its selector.
#
# Combinators can have the following match types:
#
# - descendant;
# e.g.: "a b"
# - child;
# e.g.: "a > b"
# - adjacent sibling;
# e.g.: "a + b"
# - general sibling;
# e.g.: "a ~ b"
defstruct match_type: nil, selector: nil
@type t :: %__MODULE__{
match_type: :atom,
selector: Floki.Selector.t()
}
defimpl String.Chars do
def to_string(combinator) do
match_type =
case combinator.match_type do
:descendant -> " "
:child -> " > "
:adjacent_sibling -> " + "
:general_sibling -> " ~ "
_ -> ""
end
"#{match_type}#{combinator.selector}"
end
end
end