And now you are ready to deploy target/example-contract.esc!
Rust's standard library heavily depends on native implementation, so it cannot be used in other environments such as embed microprocessors or echo-x64 smart-contracts. So the smart-contract required to build with #![no_std] attribute which disables Rust's std library and replaces it with core library which is platform independent.
Same goes for executable's entry point, which is must be replaced with #![no_main] attribute and custom _start function. New _start function can be created with echo_contract marco, along with function name matching, argument forwarding and handling of return values.
The Contract trait is required for smart-contract type. Currently it has only one method construct(&mut self) which is called when contract code is called during deployment.
Lets take a look at simplest "Hello World!" example.