Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: near/borsh-rs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 89d637b0f26887b06d26ad7c15444fed8982679b
Choose a base ref
..
head repository: near/borsh-rs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8c00f72d91e023f2bf4320290adae19d4b89f4e1
Choose a head ref
Showing with 7 additions and 9 deletions.
  1. +7 −9 borsh/src/schema/container_ext/max_size.rs
16 changes: 7 additions & 9 deletions borsh/src/schema/container_ext/max_size.rs
Original file line number Diff line number Diff line change
@@ -3,6 +3,10 @@ use crate::__private::maybestd::{string::ToString, vec::Vec};

use core::num::NonZeroUsize;

/// NonZeroUsize of value one.
// TODO: Replace usage by NonZeroUsize::MIN once MSRV is 1.70+.
const ONE: NonZeroUsize = unsafe { NonZeroUsize::new_unchecked(1) };

impl BorshSchemaContainer {
/// Returns the largest possible size of a serialised object based solely on its type.
///
@@ -40,7 +44,8 @@ impl BorshSchemaContainer {
/// schema.max_serialized_size());
/// ```
pub fn max_serialized_size(&self) -> core::result::Result<usize, SchemaMaxSerializedSizeError> {
max_serialized_size_impl(NonZeroUsize::MIN, self.declaration(), self, &mut Vec::new())
let mut stack = Vec::new();
max_serialized_size_impl(ONE, self.declaration(), self, &mut stack)
}
}

@@ -63,10 +68,6 @@ pub enum SchemaMaxSerializedSizeError {
MissingDefinition(Declaration),
}

/// NonZeroUsize of value one.
// TODO: Replace usage by NonZeroUsize::MIN once MSRV is 1.70+.
const ONE: NonZeroUsize = unsafe { NonZeroUsize::new_unchecked(1) };

/// Implementation of [`BorshSchema::max_serialized_size`].
fn max_serialized_size_impl<'a>(
count: NonZeroUsize,
@@ -100,10 +101,7 @@ fn max_serialized_size_impl<'a>(
) -> ::core::result::Result<usize, SchemaMaxSerializedSizeError> {
let mut sum: usize = 0;
for el in elements {
sum = add(
sum,
max_serialized_size_impl(ONE, el, schema, stack)?,
)?;
sum = add(sum, max_serialized_size_impl(ONE, el, schema, stack)?)?;
}
mul(count, sum)
}