1/**
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#include "assemblyDebugProto.h"
17
18namespace panda::proto {
19void DebuginfoIns::Serialize(const panda::pandasm::debuginfo::Ins &debug, protoPanda::DebuginfoIns &protoDebug)
20{
21    protoDebug.set_linenumber(debug.line_number);
22    protoDebug.set_columnnumber(debug.column_number);
23    protoDebug.set_wholeline(debug.whole_line);
24    protoDebug.set_boundleft(debug.bound_left);
25    protoDebug.set_boundright(debug.bound_right);
26}
27
28void DebuginfoIns::Deserialize(const protoPanda::DebuginfoIns &protoDebug, panda::pandasm::debuginfo::Ins &debug)
29{
30    debug.line_number = protoDebug.linenumber();
31    debug.column_number = protoDebug.columnnumber();
32    debug.whole_line = protoDebug.wholeline();
33    debug.bound_left = protoDebug.boundleft();
34    debug.bound_right = protoDebug.boundright();
35}
36
37void LocalVariable::Serialize(const panda::pandasm::debuginfo::LocalVariable &debug,
38                              protoPanda::LocalVariable &protoDebug)
39{
40    protoDebug.set_name(debug.name);
41    protoDebug.set_signature(debug.signature);
42    protoDebug.set_signaturetype(debug.signature_type);
43    protoDebug.set_reg(debug.reg);
44    protoDebug.set_start(debug.start);
45    protoDebug.set_length(debug.length);
46}
47
48void LocalVariable::Deserialize(const protoPanda::LocalVariable &protoDebug,
49                                panda::pandasm::debuginfo::LocalVariable &debug)
50{
51    debug.name = protoDebug.name();
52    debug.signature = protoDebug.signature();
53    debug.signature_type = protoDebug.signaturetype();
54    debug.reg = protoDebug.reg();
55    debug.start = protoDebug.start();
56    debug.length = protoDebug.length();
57}
58} // panda::proto
59