diem_types/transaction/
change_set.rs

1// Copyright (c) The Diem Core Contributors
2// SPDX-License-Identifier: Apache-2.0
3
4// Copyright 2021 Conflux Foundation. All rights reserved.
5// Conflux is free software and distributed under GNU General Public License.
6// See http://www.gnu.org/licenses/
7
8use crate::{contract_event::ContractEvent, write_set::WriteSet};
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Hash, Eq, PartialEq, Serialize, Deserialize)]
12pub struct ChangeSet {
13    write_set: WriteSet,
14    events: Vec<ContractEvent>,
15}
16
17impl ChangeSet {
18    pub fn new(write_set: WriteSet, events: Vec<ContractEvent>) -> Self {
19        Self { write_set, events }
20    }
21
22    pub fn into_inner(self) -> (WriteSet, Vec<ContractEvent>) {
23        (self.write_set, self.events)
24    }
25
26    pub fn write_set(&self) -> &WriteSet { &self.write_set }
27
28    pub fn events(&self) -> &[ContractEvent] { &self.events }
29}