pub struct ScriptBuf(/* private fields */);
alloc
only.Expand description
An owned, growable script.
ScriptBuf
is the most common script type that has the ownership over the contents of the
script. It has a close relationship with its borrowed counterpart, Script
.
Just as other similar types, this implements Deref
, so deref coercions apply. Also note
that all the safety/validity restrictions that apply to Script
apply to ScriptBuf
as well.
Implementations§
Source§impl ScriptBuf
impl ScriptBuf
Sourcepub fn from_bytes(bytes: Vec<u8>) -> Self
pub fn from_bytes(bytes: Vec<u8>) -> Self
Converts byte vector into script.
This method doesn’t (re)allocate.
Sourcepub fn as_mut_script(&mut self) -> &mut Script
pub fn as_mut_script(&mut self) -> &mut Script
Returns a mutable reference to unsized script.
Sourcepub fn into_bytes(self) -> Vec<u8> ⓘ
pub fn into_bytes(self) -> Vec<u8> ⓘ
Converts the script into a byte vector.
This method doesn’t (re)allocate.
Sourcepub fn into_boxed_script(self) -> Box<Script>
pub fn into_boxed_script(self) -> Box<Script>
Converts this ScriptBuf
into a boxed Script
.
This method reallocates if the capacity is greater than length of the script but should not
when they are equal. If you know beforehand that you need to create a script of exact size
use reserve_exact
before adding data to the script so that the
reallocation can be avoided.
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Constructs a new empty script with pre-allocated capacity.
Sourcepub fn reserve(&mut self, additional_len: usize)
pub fn reserve(&mut self, additional_len: usize)
Pre-allocates at least additional_len
bytes if needed.
Reserves capacity for at least additional_len
more bytes to be inserted in the given
script. The script may reserve more space to speculatively avoid frequent reallocations.
After calling reserve
, capacity will be greater than or equal to
self.len() + additional_len
. Does nothing if capacity is already sufficient.
§Panics
Panics if the new capacity exceeds isize::MAX bytes
.
Sourcepub fn reserve_exact(&mut self, additional_len: usize)
pub fn reserve_exact(&mut self, additional_len: usize)
Pre-allocates exactly additional_len
bytes if needed.
Unlike reserve
, this will not deliberately over-allocate to speculatively avoid frequent
allocations. After calling reserve_exact
, capacity will be greater than or equal to
self.len() + additional
. Does nothing if the capacity is already sufficient.
Note that the allocator may give the collection more space than it requests. Therefore,
capacity can not be relied upon to be precisely minimal. Prefer reserve
if future insertions are expected.
§Panics
Panics if the new capacity exceeds isize::MAX bytes
.
Methods from Deref<Target = Script>§
Trait Implementations§
Source§impl<'a> Arbitrary<'a> for ScriptBuf
Available on crate feature arbitrary
only.
impl<'a> Arbitrary<'a> for ScriptBuf
arbitrary
only.Source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Self
from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self
from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured
this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured
this type
needs to construct itself. Read moreSource§impl BorrowMut<Script> for ScriptBuf
impl BorrowMut<Script> for ScriptBuf
Source§fn borrow_mut(&mut self) -> &mut Script
fn borrow_mut(&mut self) -> &mut Script
Source§impl<'de> Deserialize<'de> for ScriptBuf
Available on crate feature serde
only.
impl<'de> Deserialize<'de> for ScriptBuf
serde
only.