Comments (3)
Oh, thx very much. Now this makes perfect sense.
from concordium-rust-smart-contracts.
@abizjak Can you please point to some arguments why Deletable
instead of just Drop
? From my POV former requires no arguments, like destruction context, and causes resource leak when not invoked properly. So it looks exactly like Drop
, just manual.
from concordium-rust-smart-contracts.
Deletable solves a different problem than Drop. Deletable applies to things in the contract's persistent state, i.e., the state that survives across contract updates.
In contrast, Drop is to clean up transient resources, i.e., a vector allocated in memory. This cleans up/deallocates the memory that is used during a single contract call.
The persistent state is like a database. Using Drop would be akin to deleting the value in the database because we dropped the handle to it from the program. That is typically not what you want to do.
Did this make sense?
from concordium-rust-smart-contracts.
Related Issues (20)
- Track and trace generic sponsored transaction service
- Smart Contracts: Common data structures
- Investigate cost-efficient ordered maps
- Expose Module Reference: concordium-std & testing library
- Templates do not build with the latest cargo-concordium Friday, March 1st
- Implement ordered map for smart contracts
- Add guide for choosing the right collection
- Templates do not build with the latest cargo-concordium cargo generate-generate 0.19.0
- Make the `invoke_contract` public in `cis2client` so that custom methods can be called from cis2 contract. HOT 3
- Implement `Reject` trait for `CallContractError` so that they can be returned in entrypoint methods. HOT 4
- Chaperone Smart Contract (Smart Contract Wallet Standard)
- Templates do not build with the latest cargo-concordium cargo generate-generate 0.20.0
- SchemaType for OnReceivingCis2DataParams does not match Serialize implementations HOT 1
- Feedback/Improvements on the smart-contract-wallet implementation HOT 5
- Remove redundant `serializationHelper` functions
- Create CIS-0 library and defined all `STANDARD_IDENTIFIER` constants in it HOT 1
- Templates do not build with the latest cargo-concordium cargo generate-generate 0.21.0
- Investigate smart contract components
- Update examples to use `module_load_output`
- [ deploy-scripts ] Add TLS support for node connection in the deployment script.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from concordium-rust-smart-contracts.