pub fn new_with_backend<B, E, Block, S, RA>(
	backend: Arc<B>,
	executor: E,
	build_genesis_storage: S,
) -> error::Result<Client<B, LocalCallExecutor<B, E>, Block, RA>>
	where
		E: CodeExecutor<Blake2Hasher> + RuntimeInfo,
		S: BuildStorage,
		Block: BlockT<Hash=H256>,
		B: backend::LocalBackend<Block, Blake2Hasher>
{
	let call_executor = LocalCallExecutor::new(backend.clone(), executor);
	Client::new(backend, call_executor, build_genesis_storage, Default::default())
}
/// Create a client with the explicitely provided backend.
/// This is useful for testing backend implementations.
Create a client with the explicitely provided backend.
This is useful for testing backend implementations.
Create a client with the explicitely provided backend . This is useful for testing backend implementations .
pub fn new_with_backend<B, E, Block, S, RA>(
	backend: Arc<B>,
	executor: E,
	build_genesis_storage: S,
) -> error::Result<Client<B, LocalCallExecutor<B, E>, Block, RA>>
	where
		E: CodeExecutor<Blake2Hasher> + RuntimeInfo,
		S: BuildStorage,
		Block: BlockT<Hash=H256>,
		B: backend::LocalBackend<Block, Blake2Hasher>
{
	let call_executor = LocalCallExecutor::new(backend.clone(), executor);
	Client::new(backend, call_executor, build_genesis_storage, Default::default())
}
pub fn new_with_backend < B , E , Block , S , RA > ( backend : Arc < B > , executor : E , build_genesis_storage : S , ) -> error :: Result < Client < B , LocalCallExecutor < B , E > , Block , RA > > where E : CodeExecutor < Blake2Hasher > + RuntimeInfo , S : BuildStorage , Block : BlockT < Hash = H256 > , B : backend :: LocalBackend < Block , Blake2Hasher > { let call_executor = LocalCallExecutor :: new ( backend . clone ( ) , executor ) ; Client :: new ( backend , call_executor , build_genesis_storage , Default :: default ( ) ) }
Create a client with the explicitely provided backend.
Create a client with the explicitely provided backend .
backend
Arc<B>
executor
E
build_genesis_storage
S
backend
Arc<B>
executor
E
build_genesis_storage
S