-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Here's a diff:
diff --git a/inscribe-derive/src/lib.rs b/inscribe-derive/src/lib.rs
index 5c4a976..ef5dc93 100644
--- a/inscribe-derive/src/lib.rs
+++ b/inscribe-derive/src/lib.rs
@@ -122,7 +122,7 @@ fn implement_get_inscription(dstruct: &DataStruct) -> TokenStream {
use decree::decree::FSInput;
let mut serial_out: Vec<u8> = Vec::new();
- let mut hasher = TupleHash::v256(self.get_mark().as_bytes());
+ let mut hasher = TupleHash::v256(Self::MARK.as_bytes());
// Add the struct members into the TupleHash
#center
@@ -139,22 +139,20 @@ fn implement_get_inscription(dstruct: &DataStruct) -> TokenStream {
}
-fn implement_get_mark(ast: DeriveInput) -> TokenStream {
+fn implement_mark(ast: DeriveInput) -> TokenStream {
// By default, the mark/identifier for a struct will be its name
let ident = ast.ident;
let ident_str = ident.to_string();
- let get_mark = quote!{
- fn get_mark(&self) -> &'static str {
- return #ident_str;
- }
+ let mark = quote!{
+ const MARK: &'static str = #ident_str;
};
- get_mark
+ mark
}
fn implement_inscribe_trait(ast: DeriveInput, dstruct: &DataStruct) -> TokenStream {
- let get_mark: TokenStream = implement_get_mark(ast.clone());
+ let mark: TokenStream = implement_mark(ast.clone());
let get_inscr: TokenStream = implement_get_inscription(dstruct);
let get_addl: TokenStream = implement_get_addl(ast.clone());
@@ -164,7 +162,7 @@ fn implement_inscribe_trait(ast: DeriveInput, dstruct: &DataStruct) -> TokenStre
quote! {
impl #generics Inscribe for #ident #generics {
- #get_mark
+ #mark
#get_inscr
diff --git a/src/inscribe.rs b/src/inscribe.rs
index c330cec..01d94da 100644
--- a/src/inscribe.rs
+++ b/src/inscribe.rs
@@ -8,14 +8,14 @@ pub type InscribeBuffer = [u8; INSCRIBE_LENGTH];
/// contextual data into Fiat-Shamir transcripts. There are two main methods that the trait
/// requires:
///
-/// `fn get_mark(&self) -> &'static str`
+/// `const MARK: &'static str`
///
/// and
///
/// `fn get_inscription(&self) -> FSInput`
///
/// For derived structs, the `get_inscription` method will do the following:
-/// - Initialize a TupleHash with the results of `get_mark`
+/// - Initialize a TupleHash with the contents of `MARK``
/// - For each member of the struct, do one of three things:
/// + For `Inscribe` implementers, call `get_inscription` and add the results to the
/// TupleHash
@@ -110,7 +110,7 @@ pub type InscribeBuffer = [u8; INSCRIBE_LENGTH];
/// ```
///
pub trait Inscribe {
- fn get_mark(&self) -> &'static str;
+ const MARK: &'static str;
fn get_inscription(&self) -> DecreeResult<FSInput>;
fn get_additional(&self) -> DecreeResult<FSInput> {
let x: Vec<u8> = Vec::new();
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels