chromium/components/zucchini/imposed_ensemble_matcher.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_ZUCCHINI_IMPOSED_ENSEMBLE_MATCHER_H_
#define COMPONENTS_ZUCCHINI_IMPOSED_ENSEMBLE_MATCHER_H_

#include <stddef.h>

#include <string>
#include <vector>

#include "components/zucchini/buffer_view.h"
#include "components/zucchini/element_detection.h"
#include "components/zucchini/ensemble_matcher.h"

namespace zucchini {

// A class to parse imposed match format, which is either an empty string (no
// imposed patch), or a string formatted as:
//   "#+#=#+#,#+#=#+#,..."  (e.g., "1+2=3+4", "1+2=3+4,5+6=7+8"),
// where "#+#=#+#" encodes a match as 4 unsigned integers:
//   [offset in "old", size in "old", offset in "new", size in "new"].
class ImposedMatchParser {};

// An ensemble matcher that parses a format string that describes matches.
class ImposedEnsembleMatcher : public EnsembleMatcher {};

}  // namespace zucchini

#endif  // COMPONENTS_ZUCCHINI_IMPOSED_ENSEMBLE_MATCHER_H_