func()

in cpc/cpc_compressed_state.go [101:137]


func (c *CpcCompressedState) compress(src *CpcSketch) error {
	srcFlavor := src.getFlavor()
	var err error
	switch srcFlavor {
	case CpcFlavorEmpty:
		return nil
	case CpcFlavorSparse:
		err = c.compressSparseFlavor(src)
		if c.CwStream != nil {
			return fmt.Errorf("compress: sparse flavor %v CwStream not null %v", srcFlavor, c.CwStream)
		}
		if c.CsvStream == nil {
			return fmt.Errorf("compress: sparse flavor %v CsvStream is null", srcFlavor)
		}
	case CpcFlavorHybrid:
		err = c.compressHybridFlavor(src)
		if c.CwStream != nil {
			return fmt.Errorf("compress: sparse flavor %v CwStream not null %v", srcFlavor, c.CwStream)
		}
		if c.CsvStream == nil {
			return fmt.Errorf("compress: sparse flavor %v CsvStream is null", srcFlavor)
		}
	case CpcFlavorPinned:
		err = c.compressPinnedFlavor(src)
		if c.CwStream == nil {
			return fmt.Errorf("compress: sparse flavor %v CwStream is null", srcFlavor)
		}
	case CpcFlavorSliding:
		err = c.compressSlidingFlavor(src)
		if c.CwStream == nil {
			return fmt.Errorf("compress: sparse flavor %v CwStream is null", srcFlavor)
		}
	default:
		return fmt.Errorf("unable to compress flavor %v", srcFlavor)
	}
	return err
}