// Copyright 2019 Sorint.lab
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied
// See the License for the specific language governing permissions and
// limitations under the License.

package types

type Arch string

const (
	Arch386   Arch = "386"
	ArchAMD64 Arch = "amd64"
	ArchARM   Arch = "arm"
	ArchARM64 Arch = "arm64"
)

var ValidArchs = []Arch{Arch386, ArchAMD64, ArchARM, ArchARM64}

func IsValidArch(arch Arch) bool {
	for _, va := range ValidArchs {
		if arch == va {
			return true
		}
	}
	return false
}

func ArchFromString(arch string) Arch {
	for _, va := range ValidArchs {
		if arch == string(va) {
			return va
		}
	}
	return ""
}