Comments (3)
Oh, thx very much. Now this makes perfect sense.
from concordium-std.
@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-std.
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-std.
Related Issues (20)
- derive(SchemaType) cannot be used without derive(Serialize) when attributes are used
- derive(Deserial) does not work for BTreeSet if the type is not Copy
- StateMap lacks an efficient way to check whether a key is already present
- Credential registry
- Rewrite contract examples in the style recommended by Best Practices HOT 1
- Update sponsored transaction dApp once public keys are exposed within the smart contract code
- `Low-level` upgrade mechanism is not documented HOT 1
- CIS standard for verifiable credential registries HOT 1
- Add integration tests to the `smart_contract_upgrade` example
- Credential Registry Storage Contract
- Investigate schema derivation improvements
- Improve smart contract schema derivation
- Derive serialization and schema type for types with generics
- Generate SchemaType implementations without the `build-schema` feature HOT 1
- Provide a transparent attribute similar to serde's for SchemaType
- Create realistic backend for voting workshop example HOT 2
- Merge concordium-std-derive into concordium-contracts-common-derive
- Add a "CIS2Client" to the concordium-cis2 library HOT 2
- Add CI to check compilation of contracts with latest stable and latest nightly
- Tag attribute for specifying tags when deriving serialization
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-std.