github.com/Schaudge/grailbase@v0.0.0-20240223061707-44c758a471c0/recordio/recordioutil/v2.go (about)

     1  // Copyright 2018 GRAIL, Inc. All rights reserved.
     2  // Use of this source code is governed by the Apache-2.0
     3  // license that can be found in the LICENSE file.
     4  
     5  package recordioutil
     6  
     7  import (
     8  	"fmt"
     9  
    10  	"github.com/Schaudge/grailbase/fileio"
    11  	"github.com/Schaudge/grailbase/recordio"
    12  	"github.com/Schaudge/grailbase/recordio/recordioflate"
    13  )
    14  
    15  // ScannerV2OptsFromName returns the options to use for the supplied pathname
    16  // based on its suffix.
    17  func ScannerOptsFromName(path string) (opts recordio.ScannerOpts, err error) {
    18  	compressed := false
    19  	switch fileio.DetermineType(path) {
    20  	case fileio.GrailRIOPackedCompressed:
    21  		compressed = true
    22  	case fileio.GrailRIOPackedEncrypted, fileio.GrailRIOPackedCompressedAndEncrypted:
    23  		return opts, fmt.Errorf("%s: decrypting v1 recordio not supported", path)
    24  	}
    25  	switch {
    26  	case compressed:
    27  		opts.LegacyTransform = recordioflate.FlateUncompress
    28  	}
    29  	return
    30  }