func decodeIteratorOptions(pb *internal.IteratorOptions) (*IteratorOptions, error) { opt := &IteratorOptions{ Interval: decodeInterval(pb.GetInterval()), Dimensions: pb.GetDimensions(), Fill: FillOption(pb.GetFill()), FillValue: pb.GetFillValue(), StartTime: pb.GetStartTime(), EndTime: pb.GetEndTime(), Ascending: pb.GetAscending(), Limit: int(pb.GetLimit()), Offset: int(pb.GetOffset()), SLimit: int(pb.GetSLimit()), SOffset: int(pb.GetSOffset()), Dedupe: pb.GetDedupe(), } // Set expression, if set. if pb.Expr != nil { expr, err := ParseExpr(pb.GetExpr()) if err != nil { return nil, err } opt.Expr = expr } // Convert and decode variable references. if fields := pb.GetFields(); fields != nil { opt.Aux = make([]VarRef, len(fields)) for i, ref := range fields { opt.Aux[i] = decodeVarRef(ref) } } else { opt.Aux = make([]VarRef, len(pb.GetAux())) for i, name := range pb.GetAux() { opt.Aux[i] = VarRef{Val: name} } } // Convert and dencode sources to measurements. sources := make([]Source, len(pb.GetSources())) for i, source := range pb.GetSources() { mm, err := decodeMeasurement(source) if err != nil { return nil, err } sources[i] = mm } opt.Sources = sources // Set condition, if set. if pb.Condition != nil { expr, err := ParseExpr(pb.GetCondition()) if err != nil { return nil, err } opt.Condition = expr } return opt, nil }
func decodeIteratorOptions(pb *internal.IteratorOptions) (*IteratorOptions, error) { opt := &IteratorOptions{ Aux: pb.GetAux(), Interval: decodeInterval(pb.GetInterval()), Dimensions: pb.GetDimensions(), Fill: FillOption(pb.GetFill()), FillValue: pb.GetFillValue(), StartTime: pb.GetStartTime(), EndTime: pb.GetEndTime(), Ascending: pb.GetAscending(), Limit: int(pb.GetLimit()), Offset: int(pb.GetOffset()), SLimit: int(pb.GetSLimit()), SOffset: int(pb.GetSOffset()), Dedupe: pb.GetDedupe(), } // Set expression, if set. if pb.Expr != nil { expr, err := ParseExpr(pb.GetExpr()) if err != nil { return nil, err } opt.Expr = expr } // Convert and encode sources to measurements. sources := make([]Source, len(pb.GetSources())) for i, source := range pb.GetSources() { mm, err := decodeMeasurement(source) if err != nil { return nil, err } sources[i] = mm } opt.Sources = sources // Set condition, if set. if pb.Condition != nil { expr, err := ParseExpr(pb.GetCondition()) if err != nil { return nil, err } opt.Condition = expr } return opt, nil }