pub fn put(&self, branch: Vec<Block>) -> Result<(), BlockManagerError> {
        let mut state = self.state
            .write()
            .expect("Unable to obtain write lock; it has been poisoned");

        state.put(branch)
    }
/// Put is idempotent, making the guarantee that after put is called with a
/// block in the vector argument, that block is in the BlockManager
/// whether or not it was already in the BlockManager.
/// Put makes three other guarantees
///     - If the zeroth block in branch does not have its predecessor
///       in the BlockManager an error is returned
///     - If any block after the zeroth block in branch
///       does not have its predecessor as the block to its left in
///       branch, an error is returned.
///     - If branch is empty, an error is returned
Put is idempotent, making the guarantee that after put is called with a
block in the vector argument, that block is in the BlockManager
whether or not it was already in the BlockManager.
Put makes three other guarantees
If the zeroth block in branch does not have its predecessor
in the BlockManager an error is returned
If any block after the zeroth block in branch
does not have its predecessor as the block to its left in
branch, an error is returned.
If branch is empty, an error is returned
Put is idempotent making the guarantee that after put is called with a block in the vector argument that block is in the BlockManager whether or not it was already in the BlockManager . Put makes three other guarantees If the zeroth block in branch does not have its predecessor in the BlockManager an error is returned If any block after the zeroth block in branch does not have its predecessor as the block to its left in branch an error is returned . If branch is empty an error is returned
pub fn put(&self, branch: Vec<Block>) -> Result<(), BlockManagerError> {
        let mut state = self.state
            .write()
            .expect("Unable to obtain write lock; it has been poisoned");
        state.put(branch)
    }
pub fn put ( & self , branch : Vec < Block > ) -> Result < ( ) , BlockManagerError > { let mut state = self . state . write ( ) . expect ( " " ) ; state . put ( branch ) }
Put is idempotent, making the guarantee that after put is called with a
block in the vector argument, that block is in the BlockManager
whether or not it was already in the BlockManager.
Put is idempotent making the guarantee that after put is called with a block in the vector argument that block is in the BlockManager whether or not it was already in the BlockManager .
&self
branch
Vec<Block>
&self
branch
Vec<Block>