Add memo type with Debug impl and some test cases
This commit is contained in:
parent
3c9b5612f3
commit
d4d1cf8d7b
|
|
@ -7,6 +7,7 @@ mod sha256d_writer;
|
|||
pub mod block;
|
||||
pub mod equihash_solution;
|
||||
pub mod note_commitment_tree;
|
||||
pub mod note_encryption;
|
||||
pub mod proofs;
|
||||
pub mod serialization;
|
||||
pub mod transaction;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
//! Note encryption types.
|
||||
|
||||
use std::fmt;
|
||||
|
||||
/// A 512-byte _Memo_ field associated with a note, as described in
|
||||
/// [protocol specification §5.5][ps].
|
||||
///
|
||||
/// The usage of the memo field is by agreement between the sender and
|
||||
/// recipient of the note.
|
||||
///
|
||||
/// [ps]: https://zips.z.cash/protocol/protocol.pdf#spendencoding
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct Memo([u8; 512]);
|
||||
|
||||
impl Memo {}
|
||||
|
||||
impl fmt::Debug for Memo {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let output: String;
|
||||
|
||||
match String::from_utf8(self.0.to_vec()) {
|
||||
Ok(memo) => output = memo,
|
||||
_ => output = hex::encode(&self.0[..]),
|
||||
}
|
||||
|
||||
f.debug_tuple("Memo").field(&output).finish()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn memo_fmt() {
|
||||
let memo = Memo([0u8; 512]);
|
||||
|
||||
println!("{:?}", memo);
|
||||
|
||||
let memo2 = Memo(
|
||||
*b"thiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiis \
|
||||
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiis \
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
|
||||
veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeryyyyyyyyyyyyyyyyyyyyyyyyyy \
|
||||
looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong \
|
||||
meeeeeeeeeeeeeeeeeeemooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo \
|
||||
but it's just short enough",
|
||||
);
|
||||
|
||||
println!("{:?}", memo2);
|
||||
}
|
||||
Loading…
Reference in New Issue