From f41daf8f880e97b4668523dcc6b9d4d7748f1b2b Mon Sep 17 00:00:00 2001 From: potassium Date: Thu, 12 Feb 2026 01:10:58 +0300 Subject: [PATCH] errors --- match.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/match.go b/match.go index 4e9a30b..35f2216 100644 --- a/match.go +++ b/match.go @@ -15,7 +15,7 @@ var body = &html.Node{ DataAtom: atom.Body, } -var ErrNotAnElementNode = errors.New("not an ElementNode") +var ErrNotAnElementNode = errors.New("not a html.ElementNode") func parseFragment(s string) (*html.Node, error) { n, err := html.ParseFragment(strings.NewReader(s), body) @@ -25,18 +25,26 @@ func parseFragment(s string) (*html.Node, error) { return n[0], nil } -func MatchElemAttr(s string, n2 *html.Node) (bool, error) { +func MatchElemAttr(s string, n *html.Node) (bool, error) { n1, err := parseFragment(s) if err != nil { return false, err } - if !(n1.Type == html.ElementNode && - n2.Type == html.ElementNode) { - return false, ErrNotAnElementNode + if n1.Type != html.ElementNode { + return false, errors.Join( + ErrNotAnElementNode, + errors.New("s isn's a html.ElementNode"), + ) + } + if n.Type != html.ElementNode { + return false, errors.Join( + ErrNotAnElementNode, + errors.New("n isn's a html.ElementNode"), + ) } - if n1.Data == n2.Data && + if n1.Data == n.Data && slices.Equal(n1.Attr, n2.Attr) { return true, nil }