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
}