[−][src]Struct sentry_core::Hub
The central object that can manages scopes and clients.
This can be used to capture events and manage the scope. This object is internally synchronized so it can be used from multiple threads if needed.
Each thread has its own thread-local (Hub::current()
) hub, which is
automatically derived from the main hub (Hub::main()
).
In most situations developers do not need to interface with the hub directly. Instead
toplevel convenience functions are expose that will automatically dispatch
to the thread-local (Hub::current()
) hub. In some situations this might not be
possible in which case it might become necessary to manually work with the
hub. This is for instance the case when working with async code.
Hubs that are wrapped in Arc
s can be bound to the current thread with
the run
static method.
Most common operations:
Hub::new
: creates a brand new hubHub::current
: returns the thread local hubHub::with
: invoke a callback with the thread local hubHub::with_active
: likeHub::with
but does not invoke the callback if the client is not in a supported state or not boundHub::new_from_top
: creates a new hub with just the top scope of another hub.
Implementations
impl Hub
[src]
pub fn capture_error<E: Error + ?Sized>(&self, error: &E) -> Uuid
[src]
Capture any std::error::Error
.
See the global capture_error
for more documentation.
impl Hub
[src]
pub fn new(client: Option<Arc<Client>>, scope: Arc<Scope>) -> Hub
[src]
Creates a new hub from the given client and scope.
pub fn new_from_top<H: AsRef<Hub>>(other: H) -> Hub
[src]
Creates a new hub based on the top scope of the given hub.
pub fn current() -> Arc<Hub>
[src]
Returns the current hub.
By default each thread gets a different thread local hub. If an
atomically reference counted hub is available it can override this
one here by calling Hub::run
with a closure.
This method is unavailable if the client implementation is disabled.
When using the minimal API set use Hub::with_active
instead.
pub fn main() -> Arc<Hub>
[src]
Returns the main thread's hub.
This is similar to current
but instead of picking the current
thread's hub it returns the main thread's hub instead.
pub fn with<F, R>(f: F) -> R where
F: FnOnce(&Arc<Hub>) -> R,
[src]
F: FnOnce(&Arc<Hub>) -> R,
Invokes the callback with the default hub.
This is a slightly more efficient version than Hub::current()
and
also unavailable in minimal mode.
pub fn with_active<F, R>(f: F) -> R where
F: FnOnce(&Arc<Hub>) -> R,
R: Default,
[src]
F: FnOnce(&Arc<Hub>) -> R,
R: Default,
Like Hub::with
but only calls the function if a client is bound.
This is useful for integrations that want to do efficiently nothing if there is no client bound. Additionally this internally ensures that the client can be safely synchronized. This prevents accidental recursive calls into the client.
pub fn run<F: FnOnce() -> R, R>(hub: Arc<Hub>, f: F) -> R
[src]
Binds a hub to the current thread for the duration of the call.
pub fn with_integration<I, F, R>(&self, f: F) -> R where
I: Integration,
F: FnOnce(&I) -> R,
R: Default,
[src]
I: Integration,
F: FnOnce(&I) -> R,
R: Default,
Looks up an integration on the hub.
Calls the given function with the requested integration instance when it is active on the currently active client.
See the global capture_event
for more documentation.
pub fn last_event_id(&self) -> Option<Uuid>
[src]
Returns the last event id.
pub fn capture_event(&self, event: Event<'static>) -> Uuid
[src]
Sends the event to the current client with the current scope.
In case no client is bound this does nothing instead.
See the global capture_event
for more documentation.
pub fn capture_message(&self, msg: &str, level: Level) -> Uuid
[src]
Captures an arbitrary message.
See the global capture_message
for more documentation.
pub fn client(&self) -> Option<Arc<Client>>
[src]
Returns the currently bound client.
pub fn bind_client(&self, client: Option<Arc<Client>>)
[src]
Binds a new client to the hub.
pub fn push_scope(&self) -> ScopeGuard
[src]
Pushes a new scope.
This returns a guard that when dropped will pop the scope again.
pub fn with_scope<C, F, R>(&self, scope_config: C, callback: F) -> R where
C: FnOnce(&mut Scope),
F: FnOnce() -> R,
[src]
C: FnOnce(&mut Scope),
F: FnOnce() -> R,
Temporarily pushes a scope for a single call optionally reconfiguring it.
See the global with_scope
for more documentation.
pub fn configure_scope<F, R>(&self, f: F) -> R where
R: Default,
F: FnOnce(&mut Scope) -> R,
[src]
R: Default,
F: FnOnce(&mut Scope) -> R,
Invokes a function that can modify the current scope.
See the global configure_scope
for more documentation.
pub fn add_breadcrumb<B: IntoBreadcrumbs>(&self, breadcrumb: B)
[src]
Adds a new breadcrumb to the current scope.
See the global add_breadcrumb
for more documentation.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Hub
impl Send for Hub
impl Sync for Hub
impl Unpin for Hub
impl UnwindSafe for Hub
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,