blob: 5610891783a58188ca29edaf4cb193d33adfffda [file] [log] [blame]
Kelvin Zhang4eae81e2021-12-09 17:07:17 -08001//
2// Copyright (C) 2021 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17#ifndef UPDATE_ENGINE_LZ4DIFF_LZ4PATCH_H_
18#define UPDATE_ENGINE_LZ4DIFF_LZ4PATCH_H_
19
20#include "lz4diff_format.h"
21
22namespace chromeos_update_engine {
23bool Lz4Patch(std::string_view src_data,
24 std::string_view patch_data,
25 Blob* output);
26
27std::ostream& operator<<(std::ostream& out, const Lz4diffHeader&);
28
29template <typename T>
30std::ostream& operator<<(std::ostream& out,
31 const google::protobuf::RepeatedPtrField<T>& arr) {
32 if (arr.empty()) {
33 out << "[]";
34 return out;
35 }
36 out << "[";
37 auto begin = arr.begin();
38 out << *begin;
39 ++begin;
40 for (; begin != arr.end(); ++begin) {
41 out << ", " << *begin;
42 }
43 out << "]";
44
45 return out;
46}
47
48} // namespace chromeos_update_engine
49
50#endif