Skip to content

Commit

Permalink
Make crate visible methods of OverlayedChanges public (#2597)
Browse files Browse the repository at this point in the history
# Description

- What does this PR do?
This PR make some methods of `OverlayedChanges` public which were
previously only visible in same crate.
- Why are these changes needed?
Since, some methods of the `OverlayedChanges` only have crate level
visibility, which makes `OverlayedChanges` somewhat unusable outside the
crate to create custom implementation of `Externalities`. We make those
method public to enable `OverlayedChanges` to remedy this.
- How were these changes implemented and what do they affect?
Changes are implemented by replacing crate visibility to public
visibility of 4 functions.


# Checklist

- [x] My PR includes a detailed description as outlined in the
"Description" section above
- [ ] My PR follows the [labeling requirements](CONTRIBUTING.md#Process)
of this project (at minimum one label for `T`
  required)
- [ ] I have made corresponding changes to the documentation (if
applicable)
- [ ] I have added tests that prove my fix is effective or that my
feature works (if applicable)

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
  • Loading branch information
ParthDesai and bkchr authored Dec 12, 2023
1 parent d43d2fe commit 0470bd6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
17 changes: 17 additions & 0 deletions prdoc/pr_2597.prdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
title: Make crate visible methods of `OverlayedChanges` public.

doc:
- audience: Node Dev
description: |
Make some methods of `OverlayedChanges` namely `set_child_storage`, `clear_child_storage`, `clear_prefix`
and `clear_child_prefix` public which only had crate level visibility.

migrations:
db: []

runtime: []

crates:
- name: sp-state-machine

host_functions: []
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ impl<H: Hasher> OverlayedChanges<H> {
/// `None` can be used to delete a value specified by the given key.
///
/// Can be rolled back or committed when called inside a transaction.
pub(crate) fn set_child_storage(
pub fn set_child_storage(
&mut self,
child_info: &ChildInfo,
key: StorageKey,
Expand All @@ -373,7 +373,7 @@ impl<H: Hasher> OverlayedChanges<H> {
/// Clear child storage of given storage key.
///
/// Can be rolled back or committed when called inside a transaction.
pub(crate) fn clear_child_storage(&mut self, child_info: &ChildInfo) -> u32 {
pub fn clear_child_storage(&mut self, child_info: &ChildInfo) -> u32 {
self.mark_dirty();

let extrinsic_index = self.extrinsic_index();
Expand All @@ -391,7 +391,7 @@ impl<H: Hasher> OverlayedChanges<H> {
/// Removes all key-value pairs which keys share the given prefix.
///
/// Can be rolled back or committed when called inside a transaction.
pub(crate) fn clear_prefix(&mut self, prefix: &[u8]) -> u32 {
pub fn clear_prefix(&mut self, prefix: &[u8]) -> u32 {
self.mark_dirty();

self.top.clear_where(|key, _| key.starts_with(prefix), self.extrinsic_index())
Expand All @@ -400,7 +400,7 @@ impl<H: Hasher> OverlayedChanges<H> {
/// Removes all key-value pairs which keys share the given prefix.
///
/// Can be rolled back or committed when called inside a transaction
pub(crate) fn clear_child_prefix(&mut self, child_info: &ChildInfo, prefix: &[u8]) -> u32 {
pub fn clear_child_prefix(&mut self, child_info: &ChildInfo, prefix: &[u8]) -> u32 {
self.mark_dirty();

let extrinsic_index = self.extrinsic_index();
Expand Down

0 comments on commit 0470bd6

Please sign in to comment.