func equal(n *fs.Node, m *fs.Node) bool { if n.Name() != m.Name() { return false } if n.IsDir() != m.IsDir() { return false } if !n.IsDir() { return true } for _, nChild := range n.Children() { mChild, ok := m.ChildNamed(nChild.Name()) if !ok || !equal(nChild, mChild) { return false } } return true }