use casper_types::bytesrepr::Bytes;
#[derive(Default, Debug)]
pub struct SessionStrParams<'a> {
pub(super) session_hash: &'a str,
pub(super) session_name: &'a str,
pub(super) session_package_hash: &'a str,
pub(super) session_package_name: &'a str,
pub(super) session_path: &'a str,
pub(super) session_bytes: Bytes,
pub(super) session_args_simple: Vec<&'a str>,
pub(super) session_args_json: &'a str,
pub(super) session_version: &'a str,
pub(super) session_entry_point: &'a str,
pub(super) is_session_transfer: bool,
pub(super) session_chunked_args: Option<&'a [u8]>,
}
impl<'a> SessionStrParams<'a> {
pub fn with_path(
session_path: &'a str,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_path,
session_args_simple,
session_args_json,
..Default::default()
}
}
pub fn with_bytes(
session_bytes: Bytes,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_bytes,
session_args_simple,
session_args_json,
..Default::default()
}
}
pub fn with_name(
session_name: &'a str,
session_entry_point: &'a str,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_name,
session_args_simple,
session_args_json,
session_entry_point,
..Default::default()
}
}
pub fn with_hash(
session_hash: &'a str,
session_entry_point: &'a str,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_hash,
session_args_simple,
session_args_json,
session_entry_point,
..Default::default()
}
}
pub fn with_package_name(
session_package_name: &'a str,
session_version: &'a str,
session_entry_point: &'a str,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_package_name,
session_args_simple,
session_args_json,
session_version,
session_entry_point,
..Default::default()
}
}
pub fn with_package_hash(
session_package_hash: &'a str,
session_version: &'a str,
session_entry_point: &'a str,
session_args_simple: Vec<&'a str>,
session_args_json: &'a str,
) -> Self {
Self {
session_package_hash,
session_args_simple,
session_args_json,
session_version,
session_entry_point,
..Default::default()
}
}
pub fn with_transfer(session_args_simple: Vec<&'a str>, session_args_json: &'a str) -> Self {
Self {
is_session_transfer: true,
session_args_simple,
session_args_json,
..Default::default()
}
}
}