rama::ua::emulate

Trait UserAgentProvider

pub trait UserAgentProvider<State>:
    Send
    + Sync
    + 'static {
    // Required method
    fn select_user_agent_profile(
        &self,
        ctx: &Context<State>,
    ) -> Option<&UserAgentProfile>;
}
Expand description

A trait for providing user agent profiles for emulation.

This trait is used to select a user agent profile based on the current context. It’s a core component of the user agent emulation system, allowing different strategies for selecting which user agent profile to use for a request.

Rama provides several built-in implementations:

This trait is typically used by UserAgentEmulateService to select an appropriate user agent profile for HTTP request emulation.

Required Methods§

fn select_user_agent_profile( &self, ctx: &Context<State>, ) -> Option<&UserAgentProfile>

Selects a user agent profile based on the current context.

Implementations on Foreign Types§

§

impl<State> UserAgentProvider<State> for ()

§

impl<State, P> UserAgentProvider<State> for Option<P>
where P: UserAgentProvider<State>,

§

impl<State, P> UserAgentProvider<State> for Box<P>
where P: UserAgentProvider<State>,

§

impl<State, P> UserAgentProvider<State> for Arc<P>
where P: UserAgentProvider<State>,

Implementors§

§

impl<State> UserAgentProvider<State> for UserAgentDatabase

§

impl<State> UserAgentProvider<State> for UserAgentProfile

§

impl<State, A, B> UserAgentProvider<State> for Either<A, B>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>,

§

impl<State, A, B, C> UserAgentProvider<State> for Either3<A, B, C>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>,

§

impl<State, A, B, C, D> UserAgentProvider<State> for Either4<A, B, C, D>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>,

§

impl<State, A, B, C, D, E> UserAgentProvider<State> for Either5<A, B, C, D, E>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>, E: UserAgentProvider<State>,

§

impl<State, A, B, C, D, E, F> UserAgentProvider<State> for Either6<A, B, C, D, E, F>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>, E: UserAgentProvider<State>, F: UserAgentProvider<State>,

§

impl<State, A, B, C, D, E, F, G> UserAgentProvider<State> for Either7<A, B, C, D, E, F, G>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>, E: UserAgentProvider<State>, F: UserAgentProvider<State>, G: UserAgentProvider<State>,

§

impl<State, A, B, C, D, E, F, G, H> UserAgentProvider<State> for Either8<A, B, C, D, E, F, G, H>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>, E: UserAgentProvider<State>, F: UserAgentProvider<State>, G: UserAgentProvider<State>, H: UserAgentProvider<State>,

§

impl<State, A, B, C, D, E, F, G, H, I> UserAgentProvider<State> for Either9<A, B, C, D, E, F, G, H, I>
where A: UserAgentProvider<State>, B: UserAgentProvider<State>, C: UserAgentProvider<State>, D: UserAgentProvider<State>, E: UserAgentProvider<State>, F: UserAgentProvider<State>, G: UserAgentProvider<State>, H: UserAgentProvider<State>, I: UserAgentProvider<State>,