Skip to main content

Client

Struct Client 

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

A Client facilitates interactions with the PostHog API over HTTP.

Implementations§

Source§

impl Client

Source

pub async fn capture(&self, event: Event) -> Result<(), Error>

Capture the provided event, sending it to PostHog.

Source

pub async fn capture_batch( &self, events: Vec<Event>, historical_migration: bool, ) -> Result<(), Error>

Capture a collection of events with a single request. Events are sent to the /batch/ endpoint. Set historical_migration to true to route events to the historical ingestion topic, bypassing the main pipeline.

Source

pub async fn get_feature_flags<S: Into<String>>( &self, distinct_id: S, groups: Option<HashMap<String, String>>, person_properties: Option<HashMap<String, Value>>, group_properties: Option<HashMap<String, HashMap<String, Value>>>, ) -> Result<(HashMap<String, FlagValue>, HashMap<String, Value>), Error>

Get all feature flags for a user

Source

pub async fn get_feature_flag<K: Into<String>, D: Into<String>>( &self, key: K, distinct_id: D, groups: Option<HashMap<String, String>>, person_properties: Option<HashMap<String, Value>>, group_properties: Option<HashMap<String, HashMap<String, Value>>>, ) -> Result<Option<FlagValue>, Error>

👎Deprecated since 0.6.0:

Use Client::evaluate_flags() to fetch a snapshot, then call .get_flag(key) on it. The snapshot deduplicates $feature_flag_called events and supports attaching rich metadata to captured events via Event::with_flags().

Get a specific feature flag value for a user.

Source

pub async fn is_feature_enabled<K: Into<String>, D: Into<String>>( &self, key: K, distinct_id: D, groups: Option<HashMap<String, String>>, person_properties: Option<HashMap<String, Value>>, group_properties: Option<HashMap<String, HashMap<String, Value>>>, ) -> Result<bool, Error>

👎Deprecated since 0.6.0:

Use Client::evaluate_flags() to fetch a snapshot, then call .is_enabled(key) on it. The snapshot deduplicates $feature_flag_called events and supports attaching rich metadata to captured events via Event::with_flags().

Check if a feature flag is enabled for a user.

Source

pub async fn get_feature_flag_payload<K: Into<String>, D: Into<String>>( &self, key: K, distinct_id: D, ) -> Result<Option<Value>, Error>

👎Deprecated since 0.6.0:

Use Client::evaluate_flags() to fetch a snapshot, then call .get_flag_payload(key) on it. Reading the payload from a snapshot is event-free, matching this method’s behavior, and avoids the per-call /flags request.

Get a feature flag payload for a user.

Source

pub fn evaluate_feature_flag_locally( &self, flag: &FeatureFlag, distinct_id: &str, person_properties: &HashMap<String, Value>, groups: &HashMap<String, String>, group_properties: &HashMap<String, HashMap<String, Value>>, ) -> Result<FlagValue, Error>

Evaluate a feature flag locally (requires feature flags to be loaded).

groups and group_properties are only consulted when the flag (or one of its conditions) targets a group; pass empty maps for person flags.

Source

pub async fn evaluate_flags<S: Into<String>>( &self, distinct_id: S, options: EvaluateFlagsOptions, ) -> Result<FeatureFlagEvaluations, Error>

Evaluate every feature flag for distinct_id in a single round-trip, returning a FeatureFlagEvaluations snapshot.

Each is_enabled / get_flag call on the returned snapshot fires a dedup-aware $feature_flag_called event with full metadata, and the snapshot can be passed to Event::with_flags so a downstream Client::capture inherits $feature/<key> and $active_feature_flags without an extra /flags request.

Auto Trait Implementations§

§

impl !Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl UnsafeUnpin for Client

§

impl !UnwindSafe for Client

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more