/// Creates a new `SecretKey` from a mutable reference to a field element. This constructor
/// takes a reference to avoid any unnecessary stack copying/moving of secrets (i.e. the field
/// element). The field element is copied bytewise onto the heap, the resulting `Box` is
/// stored in the returned `SecretKey`.
///
/// *WARNING* this constructor will overwrite the referenced `Fr` element with zeros after it
/// has been copied onto the heap.
/// [ds]
Creates a new `SecretKey` from a mutable reference to a field element. This constructor
takes a reference to avoid any unnecessary stack copying/moving of secrets . The field element is copied bytewise onto the heap, the resulting `Box` is
stored in the returned `SecretKey`.

WARNING* this constructor will overwrite the referenced `Fr` element with zeros after it
has been copied onto the heap.
[ds]
Creates a new ` SecretKey ` from a mutable reference to a field element . This constructor takes a reference to avoid any unnecessary stack copying / moving of secrets . The field element is copied bytewise onto the heap the resulting ` Box ` is stored in the returned ` SecretKey ` . WARNING * this constructor will overwrite the referenced ` Fr ` element with zeros after it has been copied onto the heap . [ ds ]
pub fn from_mut(fr: &mut Fr) -> Self {
        let fr_ptr = fr as *mut Fr;
        let mut boxed_fr = Box::new(Fr::zero());
        unsafe {
            copy_nonoverlapping(fr_ptr, &mut *boxed_fr as *mut Fr, 1);
        }
        clear_fr(fr);
        SecretKey(boxed_fr)
    }
pub fn from_mut ( fr : & mut Fr ) -> Self { let fr_ptr = fr as * mut Fr ; let mut boxed_fr = Box :: new ( Fr :: zero ( ) ) ; unsafe { copy_nonoverlapping ( fr_ptr , & mut * boxed_fr as * mut Fr , 1 ) ; } clear_fr ( fr ) ; SecretKey ( boxed_fr ) }
Creates a new `SecretKey` from a mutable reference to a field element.
Creates a new ` SecretKey ` from a mutable reference to a field element .
fr
&mut Fr