pub struct ExtendedHeaderGenerator { /* private fields */ }test-utils only.Expand description
ExtendedHeader generator for testing purposes.
WARNING: ALL METHODS PANIC! DO NOT USE IT IN PRODUCTION!
Implementations§
Source§impl ExtendedHeaderGenerator
impl ExtendedHeaderGenerator
Sourcepub fn new() -> ExtendedHeaderGenerator
pub fn new() -> ExtendedHeaderGenerator
Creates new ExtendedHeaderGenerator.
Sourcepub fn new_from_height(height: u64) -> ExtendedHeaderGenerator
pub fn new_from_height(height: u64) -> ExtendedHeaderGenerator
Creates new ExtendedHeaderGenerator starting from specified height.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new_from_height(5);
let header5 = generator.next();Sourcepub fn next(&mut self) -> ExtendedHeader
pub fn next(&mut self) -> ExtendedHeader
Generates the next header for a random non-empty data square.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next();Sourcepub fn next_empty(&mut self) -> ExtendedHeader
pub fn next_empty(&mut self) -> ExtendedHeader
Generates the next header for an empty data square.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next_empty();Sourcepub fn next_with_dah(&mut self, dah: DataAvailabilityHeader) -> ExtendedHeader
pub fn next_with_dah(&mut self, dah: DataAvailabilityHeader) -> ExtendedHeader
Generates the next header with the given DataAvailabilityHeader
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next_with_dah(generate_dah());Sourcepub fn next_many(&mut self, amount: u64) -> Vec<ExtendedHeader>
pub fn next_many(&mut self, amount: u64) -> Vec<ExtendedHeader>
Generate the amount of subsequent non-empty headers.
Sourcepub fn next_many_empty(&mut self, amount: u64) -> Vec<ExtendedHeader>
pub fn next_many_empty(&mut self, amount: u64) -> Vec<ExtendedHeader>
Generate the amount of subsequent empty headers.
Sourcepub fn next_of(&self, header: &ExtendedHeader) -> ExtendedHeader
pub fn next_of(&self, header: &ExtendedHeader) -> ExtendedHeader
Generates the next header of the provided header.
This can be used to create two headers of same height but different hash.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next();
let header2 = generator.next();
let another_header2 = generator.next_of(&header1);§Note
This method does not change the state of ExtendedHeaderGenerator.
Sourcepub fn next_of_with_dah(
&self,
header: &ExtendedHeader,
dah: DataAvailabilityHeader,
) -> ExtendedHeader
pub fn next_of_with_dah( &self, header: &ExtendedHeader, dah: DataAvailabilityHeader, ) -> ExtendedHeader
Generates the next header of the provided header with the given DataAvailabilityHeader.
This can be used to create two headers of same height but different hash.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next();
let header2 = generator.next();
let another_header2 = generator.next_of_with_dah(&header1, generate_dah());§Note
This method does not change the state of ExtendedHeaderGenerator.
Sourcepub fn next_many_of(
&self,
header: &ExtendedHeader,
amount: u64,
) -> Vec<ExtendedHeader>
pub fn next_many_of( &self, header: &ExtendedHeader, amount: u64, ) -> Vec<ExtendedHeader>
Generates the next amount of headers of the provided header.
This can be used to create two chains of headers of same heights but different hashes.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next();
let headers_2_to_12 = generator.next_many(10);
let another_headers_2_to_12 = generator.next_many_of(&header1, 10);§Note
This method does not change the state of ExtendedHeaderGenerator.
Sourcepub fn another_of(&self, header: &ExtendedHeader) -> ExtendedHeader
pub fn another_of(&self, header: &ExtendedHeader) -> ExtendedHeader
Generates the another header of the same height but different hash.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut generator = ExtendedHeaderGenerator::new();
let header1 = generator.next();
let header2 = generator.next();
let another_header2 = generator.another_of(&header2);§Note
This method does not change the state of ExtendedHeaderGenerator.
Sourcepub fn fork(&self) -> ExtendedHeaderGenerator
pub fn fork(&self) -> ExtendedHeaderGenerator
Create a “forked” generator for “forking” the chain.
use celestia_types::test_utils::ExtendedHeaderGenerator;
let mut gen_chain1 = ExtendedHeaderGenerator::new();
let header1 = gen_chain1.next();
let header2 = gen_chain1.next();
let mut gen_chain2 = gen_chain1.fork();
let header3_chain1 = gen_chain1.next();
let header3_chain2 = gen_chain2.next();§Note
This is the same as clone, but the name describes the intention.
Sourcepub fn set_time(&mut self, time: Time, block_time: Duration)
pub fn set_time(&mut self, time: Time, block_time: Duration)
Change header generator time. Headers generated from now on will have time as creation
time.
Sourcepub fn reset_time(&mut self)
pub fn reset_time(&mut self)
Reset header generator time, so that it produces headers with current timestamp
Trait Implementations§
Source§impl Clone for ExtendedHeaderGenerator
impl Clone for ExtendedHeaderGenerator
Source§fn clone(&self) -> ExtendedHeaderGenerator
fn clone(&self) -> ExtendedHeaderGenerator
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExtendedHeaderGenerator
impl Debug for ExtendedHeaderGenerator
Auto Trait Implementations§
impl Freeze for ExtendedHeaderGenerator
impl RefUnwindSafe for ExtendedHeaderGenerator
impl Send for ExtendedHeaderGenerator
impl Sync for ExtendedHeaderGenerator
impl Unpin for ExtendedHeaderGenerator
impl UnwindSafe for ExtendedHeaderGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.