go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/config/impl/filesystem/sort.go (about)

     1  // Copyright 2015 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package filesystem
    16  
    17  import (
    18  	"go.chromium.org/luci/config"
    19  )
    20  
    21  type configList []config.Config
    22  
    23  func (cl configList) Len() int      { return len(cl) }
    24  func (cl configList) Swap(i, j int) { cl[i], cl[j] = cl[j], cl[i] }
    25  func (cl configList) Less(i, j int) bool {
    26  	if cl[i].ConfigSet < cl[j].ConfigSet {
    27  		return true
    28  	} else if cl[i].ConfigSet > cl[j].ConfigSet {
    29  		return false
    30  	}
    31  	return cl[i].Path < cl[j].Path
    32  }
    33  
    34  type projList []config.Project
    35  
    36  func (pl projList) Len() int      { return len(pl) }
    37  func (pl projList) Swap(i, j int) { pl[i], pl[j] = pl[j], pl[i] }
    38  func (pl projList) Less(i, j int) bool {
    39  	return pl[i].ID < pl[j].ID
    40  }