func (s *FileSequence) Frame(frame interface{}) (string, error) {
	var zframe string
	var isInt bool

	if s.frameSet != nil {
		switch t := frame.(type) {
		case int:
			var i int = t
			zframe = zfillInt(i, s.zfill)
			isInt = true
		case string:
			zframe = t
		case []byte:
			zframe = string(t)
		case fmt.Stringer:
			zframe = t.String()
		default:
			return zframe, fmt.Errorf("%v is not a valid int/string type", t)
		}
		// Only try and zfill the string if it was an int format
		if !isInt {
			if _, err := strconv.Atoi(zframe); err == nil {
				zframe = zfillString(zframe, s.zfill)
			}
		}
	}

	var buf strings.Builder
	buf.WriteString(s.dir)
	buf.WriteString(s.basename)
	buf.WriteString(zframe)
	buf.WriteString(s.ext)
	return buf.String(), nil
}
func (s *FileSequence) Frame(frame interface{}) (string, error) {
	var zframe string
	var isInt bool

	if s.frameSet != nil {
		switch t := frame.(type) {
		case int:
			var i int = t
			zframe = zfillInt(i, s.zfill)
			isInt = true
		case string:
			zframe = t
		case []byte:
			zframe = string(t)
		case fmt.Stringer:
			zframe = t.String()
		default:
			return zframe, fmt.Errorf("%v is not a valid int/string type", t)
		}
		
		if !isInt {
			if _, err := strconv.Atoi(zframe); err == nil {
				zframe = zfillString(zframe, s.zfill)
			}
		}
	}

	var buf strings.Builder
	buf.WriteString(s.dir)
	buf.WriteString(s.basename)
	buf.WriteString(zframe)
	buf.WriteString(s.ext)
	return buf.String(), nil
}
func ( s * FileSequence ) Frame ( frame interface { } ) ( string , error ) { var zframe string var isInt bool if s . frameSet != nil { switch t := frame . ( type ) { case int : var i int = t zframe = zfillInt ( i , s . zfill ) isInt = true case string : zframe = t case [ ] byte : zframe = string ( t ) case fmt . Stringer : zframe = t . String ( ) default : return zframe , fmt . Errorf ( " " , t ) } // Only try and zfill the string if it was an int format if ! isInt { if _ , err := strconv . Atoi ( zframe ) ; err == nil { zframe = zfillString ( zframe , s . zfill ) } } } var buf strings . Builder buf . WriteString ( s . dir ) buf . WriteString ( s . basename ) buf . WriteString ( zframe ) buf . WriteString ( s . ext ) return buf . String ( ) , nil }
/*
Frame returns a path to the given frame in the sequence.  Integer or string
digits are treated as a frame number and padding is applied, all other values
are passed though. Accepts ints, strings, []byte, and Stringer types

Example:

	seq.Frame(1)
	>> /foo/bar.0001.exr

	seq.Frame("#")
	>> /foo/bar.#.exr
*/
/ * Frame returns a path to the given frame in the sequence . Integer or string digits are treated as a frame number and padding is applied all other values are passed though . Accepts ints strings [] byte and Stringer types