use crate::{
dto::{
state::{SubnetStateResponse, WasmStoreStateResponse},
template::WasmStorePublicationStateResponse,
},
storage::stable::state::subnet::{
PublicationStoreStateRecord, SubnetStateRecord, WasmStoreRecord,
},
};
pub struct SubnetStateMapper;
impl SubnetStateMapper {
#[must_use]
pub fn wasm_store_record_to_response(data: WasmStoreRecord) -> WasmStoreStateResponse {
WasmStoreStateResponse {
binding: data.binding,
pid: data.pid,
created_at: data.created_at,
}
}
#[must_use]
pub fn record_to_response(data: SubnetStateRecord) -> SubnetStateResponse {
SubnetStateResponse {
wasm_stores: data
.wasm_stores
.into_iter()
.map(Self::wasm_store_record_to_response)
.collect(),
}
}
#[must_use]
pub fn publication_store_record_to_response(
data: PublicationStoreStateRecord,
) -> WasmStorePublicationStateResponse {
WasmStorePublicationStateResponse {
active_binding: data.active_binding,
detached_binding: data.detached_binding,
retired_binding: data.retired_binding,
generation: data.generation,
changed_at: data.changed_at,
retired_at: data.retired_at,
}
}
}