summaryrefslogtreecommitdiff
path: root/hclwrite/native_node_sorter.go
blob: 0a78683bd78afe8e094032b82df6a4815cfb4c30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package hclwrite

import (
	"github.com/hashicorp/hcl/v2/hclsyntax"
)

type nativeNodeSorter struct {
	Nodes []hclsyntax.Node
}

func (s nativeNodeSorter) Len() int {
	return len(s.Nodes)
}

func (s nativeNodeSorter) Less(i, j int) bool {
	rangeI := s.Nodes[i].Range()
	rangeJ := s.Nodes[j].Range()
	return rangeI.Start.Byte < rangeJ.Start.Byte
}

func (s nativeNodeSorter) Swap(i, j int) {
	s.Nodes[i], s.Nodes[j] = s.Nodes[j], s.Nodes[i]
}