UserAccount use builder pattern
Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -13,11 +13,9 @@ impl UserAccount {
|
|||||||
Self { key, wallet: None }
|
Self { key, wallet: None }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_with_wallet(key: Keypair, wallet: Wallet) -> Self {
|
pub fn with_wallet(mut self, wallet: Wallet) -> Self {
|
||||||
Self {
|
self.wallet = Some(wallet);
|
||||||
key,
|
self
|
||||||
wallet: Some(wallet),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,10 +56,10 @@ impl TokenSerializable for UserAccount {
|
|||||||
return Err(ParseError::DecodeFailed);
|
return Err(ParseError::DecodeFailed);
|
||||||
};
|
};
|
||||||
|
|
||||||
let user_acc = if let Some(wallet) = m_wallet {
|
let mut user_acc = UserAccount::new(key);
|
||||||
UserAccount::new_with_wallet(key, wallet)
|
|
||||||
} else {
|
if let Some(wallet) = m_wallet {
|
||||||
UserAccount::new(key)
|
user_acc = user_acc.with_wallet(wallet);
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(user_acc)
|
Ok(user_acc)
|
||||||
@@ -93,7 +91,7 @@ mod tests {
|
|||||||
fn test_user_account_serialize_deserialize() {
|
fn test_user_account_serialize_deserialize() {
|
||||||
let kp = FullKeypair::generate();
|
let kp = FullKeypair::generate();
|
||||||
let acc =
|
let acc =
|
||||||
UserAccount::new_with_wallet(kp.to_keypair(), Wallet::new(URI.to_owned()).unwrap());
|
UserAccount::new(kp.to_keypair()).with_wallet(Wallet::new(URI.to_owned()).unwrap());
|
||||||
|
|
||||||
let mut writer = TokenWriter::new("\t");
|
let mut writer = TokenWriter::new("\t");
|
||||||
acc.serialize_tokens(&mut writer);
|
acc.serialize_tokens(&mut writer);
|
||||||
|
|||||||
Reference in New Issue
Block a user