github.com/richardwilkes/toolbox@v1.121.0/xmath/geom/visibility/array.go (about) 1 // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved. 2 // 3 // This Source Code Form is subject to the terms of the Mozilla Public 4 // License, version 2.0. If a copy of the MPL was not distributed with 5 // this file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 // 7 // This Source Code Form is "Incompatible With Secondary Licenses", as 8 // defined by the Mozilla Public License, version 2.0. 9 10 package visibility 11 12 type array struct { 13 data []int 14 } 15 16 func (a *array) size() int { 17 return len(a.data) 18 } 19 20 func (a *array) elem(index int) int { 21 return a.data[index] 22 } 23 24 func (a *array) set(index, value int) { 25 a.data[index] = value 26 } 27 28 func (a *array) pop() int { 29 v := a.data[len(a.data)-1] 30 a.data = a.data[:len(a.data)-1] 31 return v 32 } 33 34 func (a *array) push(v int) { 35 a.data = append(a.data, v) 36 }