Context

Struct Context 

Source
pub struct Context { /* private fields */ }
Expand description

The main context for the Bitcoin Kernel library.

The Context manages the global state of the Bitcoin Kernel library and should be kept in memory for the duration of all context-dependent operations. It is created via ContextBuilder and can be configured with various chain types and callbacks.

§Lifetime

It is recommended to outlive any objects that depend on it, such as ChainstateManager instances.

§Thread Safety

Context can be safely sent between threads and shared via Arc.

§Examples

use bitcoinkernel::{Context, ChainType, KernelError};

// Simple creation with defaults
let context = Context::new()?;

// Using the builder for configuration
let context = Context::builder()
    .chain_type(ChainType::Regtest)
    .build()?;

Implementations§

Source§

impl Context

Source

pub fn builder() -> ContextBuilder

Returns a new ContextBuilder for constructing a context.

This is the recommended way to create a Context when you need to configure chain types or register callbacks.

§Returns

A new ContextBuilder instance.

§Example
use bitcoinkernel::{Context, ChainType, KernelError};

let context = Context::builder()
    .chain_type(ChainType::Testnet)
    .build()?;
Source

pub fn new() -> Result<Context, KernelError>

Creates a new context with default settings (mainnet).

This is a convenience method equivalent to calling ContextBuilder::new().build().

§Returns
§Example
use bitcoinkernel::{Context, KernelError};

let context = Context::new()?;
Source

pub fn interrupt(&self) -> Result<(), KernelError>

Interrupts any ongoing operations in the context.

This signals the context to stop any long-running operations that support interruption, such as reindex, importing or processing blocks.

§Returns
  • Ok(()) - If the interrupt signal was successfully sent
  • Err(KernelError::Internal) - If the interrupt operation fails
§Example
use bitcoinkernel::{Context, KernelError};

let context = Context::new()?;

// Later, interrupt ongoing operations
context.interrupt()?;

Trait Implementations§

Source§

impl Drop for Context

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for Context

Source§

impl Sync for Context

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.