(n int64)
| 53 | } |
| 54 | |
| 55 | func (s *stack) roll(n int64) error { |
| 56 | if n < 0 || n >= int64(len(*s)) { |
| 57 | return errors.Wrapf(errors.WithData(ErrStackRange, "len(stack)", len(*s)), "roll %d", n) |
| 58 | } |
| 59 | v := *s |
| 60 | i := int64(len(v)) - 1 - n |
| 61 | item := v[i] |
| 62 | *s = append(append(v[:i], v[i+1:]...), item) |
| 63 | return nil |
| 64 | } |
| 65 | |
| 66 | func (s *stack) bury(n int64) error { |
| 67 | if n < 0 || n >= int64(len(*s)) { |