SYMBOL INDEX (387 symbols across 59 files) FILE: candidate-pipeline/candidate_pipeline.rs type PipelineStage (line 14) | pub enum PipelineStage { type PipelineResult (line 24) | pub struct PipelineResult { type HasRequestId (line 32) | pub trait HasRequestId { method request_id (line 33) | fn request_id(&self) -> &str; type CandidatePipeline (line 37) | pub trait CandidatePipeline: Send + Sync method query_hydrators (line 42) | fn query_hydrators(&self) -> &[Box>]; method sources (line 43) | fn sources(&self) -> &[Box>]; method hydrators (line 44) | fn hydrators(&self) -> &[Box>]; method filters (line 45) | fn filters(&self) -> &[Box>]; method scorers (line 46) | fn scorers(&self) -> &[Box>]; method selector (line 47) | fn selector(&self) -> &dyn Selector; method post_selection_hydrators (line 48) | fn post_selection_hydrators(&self) -> &[Box>]; method post_selection_filters (line 49) | fn post_selection_filters(&self) -> &[Box>]; method side_effects (line 50) | fn side_effects(&self) -> Arc>>>; method result_size (line 51) | fn result_size(&self) -> usize; method execute (line 53) | async fn execute(&self, query: Q) -> PipelineResult { method hydrate_query (line 95) | async fn hydrate_query(&self, query: Q) -> Q { method fetch_candidates (line 126) | async fn fetch_candidates(&self, query: &Q) -> Vec { method hydrate (line 160) | async fn hydrate(&self, query: &Q, candidates: Vec) -> Vec { method hydrate_post_selection (line 166) | async fn hydrate_post_selection(&self, query: &Q, candidates: Vec) ... method run_hydrators (line 177) | async fn run_hydrators( method filter (line 220) | async fn filter(&self, query: &Q, candidates: Vec) -> (Vec, Vec<... method filter_post_selection (line 226) | async fn filter_post_selection(&self, query: &Q, candidates: Vec) -... method run_filters (line 237) | async fn run_filters( method score (line 276) | async fn score(&self, query: &Q, mut candidates: Vec) -> Vec { method select (line 310) | fn select(&self, query: &Q, candidates: Vec) -> Vec { method run_side_effects (line 319) | fn run_side_effects(&self, input: Arc>) { FILE: candidate-pipeline/filter.rs type FilterResult (line 6) | pub struct FilterResult { type Filter (line 13) | pub trait Filter: Any + Send + Sync method enable (line 19) | fn enable(&self, _query: &Q) -> bool { method filter (line 26) | async fn filter(&self, query: &Q, candidates: Vec) -> Result &'static str { FILE: candidate-pipeline/hydrator.rs type Hydrator (line 7) | pub trait Hydrator: Any + Send + Sync method enable (line 13) | fn enable(&self, _query: &Q) -> bool { method hydrate (line 22) | async fn hydrate(&self, query: &Q, candidates: &[C]) -> Result,... method update (line 26) | fn update(&self, candidate: &mut C, hydrated: C); method update_all (line 30) | fn update_all(&self, candidates: &mut [C], hydrated: Vec) { method name (line 36) | fn name(&self) -> &'static str { FILE: candidate-pipeline/query_hydrator.rs type QueryHydrator (line 7) | pub trait QueryHydrator: Any + Send + Sync method enable (line 12) | fn enable(&self, _query: &Q) -> bool { method hydrate (line 18) | async fn hydrate(&self, query: &Q) -> Result; method update (line 22) | fn update(&self, query: &mut Q, hydrated: Q); method name (line 24) | fn name(&self) -> &'static str { FILE: candidate-pipeline/scorer.rs type Scorer (line 7) | pub trait Scorer: Send + Sync method enable (line 13) | fn enable(&self, _query: &Q) -> bool { method score (line 22) | async fn score(&self, query: &Q, candidates: &[C]) -> Result, S... method update (line 26) | fn update(&self, candidate: &mut C, scored: C); method update_all (line 30) | fn update_all(&self, candidates: &mut [C], scored: Vec) { method name (line 36) | fn name(&self) -> &'static str { FILE: candidate-pipeline/selector.rs type Selector (line 4) | pub trait Selector: Send + Sync method select (line 10) | fn select(&self, _query: &Q, candidates: Vec) -> Vec { method enable (line 19) | fn enable(&self, _query: &Q) -> bool { method score (line 24) | fn score(&self, candidate: &C) -> f64; method sort (line 27) | fn sort(&self, candidates: Vec) -> Vec { method size (line 38) | fn size(&self) -> Option { method name (line 42) | fn name(&self) -> &'static str { FILE: candidate-pipeline/side_effect.rs type SideEffectInput (line 8) | pub struct SideEffectInput { type SideEffect (line 14) | pub trait SideEffect: Send + Sync method enable (line 20) | fn enable(&self, _query: Arc) -> bool { method run (line 24) | async fn run(&self, input: Arc>) -> Result<(), S... method name (line 26) | fn name(&self) -> &'static str { FILE: candidate-pipeline/source.rs type Source (line 7) | pub trait Source: Any + Send + Sync method enable (line 13) | fn enable(&self, _query: &Q) -> bool { method get_candidates (line 17) | async fn get_candidates(&self, query: &Q) -> Result, String>; method name (line 19) | fn name(&self) -> &'static str { FILE: home-mixer/candidate_hydrators/core_data_candidate_hydrator.rs type CoreDataCandidateHydrator (line 8) | pub struct CoreDataCandidateHydrator { method new (line 13) | pub async fn new(tes_client: Arc) -> Self { method hydrate (line 21) | async fn hydrate( method update (line 52) | fn update(&self, candidate: &mut PostCandidate, hydrated: PostCandidat... FILE: home-mixer/candidate_hydrators/gizmoduck_hydrator.rs type GizmoduckCandidateHydrator (line 8) | pub struct GizmoduckCandidateHydrator { method new (line 13) | pub async fn new(gizmoduck_client: Arc) -> Self { method hydrate (line 21) | async fn hydrate( method update (line 47) | fn update(&self, candidate: &mut PostCandidate, hydrated: PostCandidat... FILE: home-mixer/candidate_hydrators/vf_candidate_hydrator.rs type VFCandidateHydrator (line 15) | pub struct VFCandidateHydrator { method new (line 20) | pub async fn new(vf_client: Arc) -> Self { method hydrate (line 22) | async fn hydrate( method update (line 59) | fn update(&self, candidate: &mut PostCandidate, hydrated: PostCandidat... FILE: home-mixer/candidate_pipeline/candidate.rs type PostCandidate (line 6) | pub struct PostCandidate { type PhoenixScores (line 30) | pub struct PhoenixScores { type CandidateHelpers (line 53) | pub trait CandidateHelpers { method get_screen_names (line 54) | fn get_screen_names(&self) -> HashMap; method get_screen_names (line 58) | fn get_screen_names(&self) -> HashMap { FILE: home-mixer/candidate_pipeline/candidate_features.rs type PureCoreData (line 5) | pub struct PureCoreData { type ExclusiveTweetControl (line 16) | pub struct ExclusiveTweetControl { type MediaEntities (line 20) | pub type MediaEntities = Vec; type MediaEntity (line 24) | pub struct MediaEntity { type MediaInfo (line 30) | pub enum MediaInfo { type VideoInfo (line 36) | pub struct VideoInfo { type Share (line 42) | pub struct Share { type Reply (line 49) | pub struct Reply { type GizmoduckUserCounts (line 56) | pub struct GizmoduckUserCounts { type GizmoduckUserProfile (line 62) | pub struct GizmoduckUserProfile { type GizmoduckUser (line 68) | pub struct GizmoduckUser { type GizmoduckUserResult (line 76) | pub struct GizmoduckUserResult { FILE: home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs type PhoenixCandidatePipeline (line 60) | pub struct PhoenixCandidatePipeline { method build_with_clients (line 73) | async fn build_with_clients( method prod (line 162) | pub async fn prod() -> PhoenixCandidatePipeline { method query_hydrators (line 217) | fn query_hydrators(&self) -> &[Box... method sources (line 221) | fn sources(&self) -> &[Box... method hydrators (line 224) | fn hydrators(&self) -> &[Box &[Box... method scorers (line 232) | fn scorers(&self) -> &[Box... method selector (line 236) | fn selector(&self) -> &dyn Selector { method post_selection_hydrators (line 240) | fn post_selection_hydrators(&self) -> &[Box &[Box Arc usize { FILE: home-mixer/candidate_pipeline/query.rs type ScoredPostsQuery (line 8) | pub struct ScoredPostsQuery { method new (line 24) | pub fn new( method get_viewer (line 54) | fn get_viewer(&self) -> Option { method request_id (line 66) | fn request_id(&self) -> &str { FILE: home-mixer/candidate_pipeline/query_features.rs type UserFeatures (line 5) | pub struct UserFeatures { FILE: home-mixer/filters/age_filter.rs type AgeFilter (line 9) | pub struct AgeFilter { method new (line 14) | pub fn new(max_age: Duration) -> Self { method is_within_age (line 18) | fn is_within_age(&self, tweet_id: i64) -> bool { method filter (line 27) | async fn filter( FILE: home-mixer/filters/author_socialgraph_filter.rs type AuthorSocialgraphFilter (line 7) | pub struct AuthorSocialgraphFilter; method filter (line 11) | async fn filter( FILE: home-mixer/filters/core_data_hydration_filter.rs type CoreDataHydrationFilter (line 6) | pub struct CoreDataHydrationFilter; method filter (line 10) | async fn filter( FILE: home-mixer/filters/dedup_conversation_filter.rs type DedupConversationFilter (line 8) | pub struct DedupConversationFilter; method filter (line 12) | async fn filter( function get_conversation_id (line 44) | fn get_conversation_id(candidate: &PostCandidate) -> u64 { FILE: home-mixer/filters/drop_duplicates_filter.rs type DropDuplicatesFilter (line 7) | pub struct DropDuplicatesFilter; method filter (line 11) | async fn filter( FILE: home-mixer/filters/ineligible_subscription_filter.rs type IneligibleSubscriptionFilter (line 8) | pub struct IneligibleSubscriptionFilter; method filter (line 12) | async fn filter( FILE: home-mixer/filters/muted_keyword_filter.rs type MutedKeywordFilter (line 8) | pub struct MutedKeywordFilter { method new (line 13) | pub fn new() -> Self { method filter (line 24) | async fn filter( FILE: home-mixer/filters/previously_seen_posts_filter.rs type PreviouslySeenPostsFilter (line 10) | pub struct PreviouslySeenPostsFilter; method filter (line 14) | async fn filter( FILE: home-mixer/filters/previously_served_posts_filter.rs type PreviouslyServedPostsFilter (line 7) | pub struct PreviouslyServedPostsFilter; method enable (line 11) | fn enable(&self, query: &ScoredPostsQuery) -> bool { method filter (line 15) | async fn filter( FILE: home-mixer/filters/retweet_deduplication_filter.rs type RetweetDeduplicationFilter (line 9) | pub struct RetweetDeduplicationFilter; method filter (line 13) | async fn filter( FILE: home-mixer/filters/self_tweet_filter.rs type SelfTweetFilter (line 7) | pub struct SelfTweetFilter; method filter (line 11) | async fn filter( FILE: home-mixer/filters/vf_filter.rs type VFFilter (line 7) | pub struct VFFilter; method filter (line 12) | async fn filter( function should_drop (line 25) | fn should_drop(reason: &Option) -> bool { FILE: home-mixer/main.rs type Args (line 17) | struct Args { function main (line 30) | async fn main() -> anyhow::Result<()> { FILE: home-mixer/query_hydrators/user_action_seq_query_hydrator.rs type UserActionSeqQueryHydrator (line 25) | pub struct UserActionSeqQueryHydrator { method new (line 33) | pub fn new(uas_fetcher: Arc) -> Self { method hydrate (line 46) | async fn hydrate(&self, query: &ScoredPostsQuery) -> Result &'static str { method aggregate_user_action_sequence (line 72) | fn aggregate_user_action_sequence( function convert_to_proto_sequence (line 119) | fn convert_to_proto_sequence( FILE: home-mixer/query_hydrators/user_features_query_hydrator.rs type UserFeaturesQueryHydrator (line 9) | pub struct UserFeaturesQueryHydrator { method hydrate (line 16) | async fn hydrate(&self, query: &ScoredPostsQuery) -> Result &'static str { FILE: home-mixer/scorers/author_diversity_scorer.rs type AuthorDiversityScorer (line 10) | pub struct AuthorDiversityScorer { method new (line 22) | pub fn new(decay_factor: f64, floor: f64) -> Self { method multiplier (line 29) | fn multiplier(&self, position: usize) -> f64 { method score (line 37) | async fn score( method update (line 70) | fn update(&self, candidate: &mut PostCandidate, scored: PostCandidate) { method default (line 16) | fn default() -> Self { FILE: home-mixer/scorers/oon_scorer.rs type OONScorer (line 8) | pub struct OONScorer; method score (line 12) | async fn score( method update (line 35) | fn update(&self, candidate: &mut PostCandidate, scored: PostCandidate) { FILE: home-mixer/scorers/phoenix_scorer.rs type PhoenixScorer (line 12) | pub struct PhoenixScorer { method score (line 19) | async fn score( method update (line 78) | fn update(&self, candidate: &mut PostCandidate, scored: PostCandidate) { method build_predictions_map (line 87) | fn build_predictions_map( method extract_phoenix_scores (line 129) | fn extract_phoenix_scores(&self, p: &ActionPredictions) -> PhoenixScor... method current_timestamp_millis (line 153) | fn current_timestamp_millis() -> Option { type ActionPredictions (line 161) | struct ActionPredictions { method get (line 169) | fn get(&self, action: ActionName) -> Option { method get_continuous (line 173) | fn get_continuous(&self, action: ContinuousActionName) -> Option { FILE: home-mixer/scorers/weighted_scorer.rs type WeightedScorer (line 8) | pub struct WeightedScorer; method score (line 13) | async fn score( method update (line 34) | fn update(&self, candidate: &mut PostCandidate, scored: PostCandidate) { method apply (line 40) | fn apply(score: Option, weight: f64) -> f64 { method compute_weighted_score (line 44) | fn compute_weighted_score(candidate: &PostCandidate) -> f64 { method vqv_weight_eligibility (line 72) | fn vqv_weight_eligibility(candidate: &PostCandidate) -> f64 { method offset_score (line 83) | fn offset_score(combined_score: f64) -> f64 { FILE: home-mixer/selectors/top_k_score_selector.rs type TopKScoreSelector (line 6) | pub struct TopKScoreSelector; method score (line 9) | fn score(&self, candidate: &PostCandidate) -> f64 { method size (line 12) | fn size(&self) -> Option { FILE: home-mixer/server.rs type HomeMixerServer (line 12) | pub struct HomeMixerServer { method new (line 17) | pub async fn new() -> Self { method get_scored_posts (line 27) | async fn get_scored_posts( FILE: home-mixer/side_effects/cache_request_info_side_effect.rs type CacheRequestInfoSideEffect (line 10) | pub struct CacheRequestInfoSideEffect { method enable (line 16) | fn enable(&self, query: Arc) -> bool { method run (line 20) | async fn run( FILE: home-mixer/sources/phoenix_source.rs type PhoenixSource (line 10) | pub struct PhoenixSource { method enable (line 16) | fn enable(&self, query: &ScoredPostsQuery) -> bool { method get_candidates (line 21) | async fn get_candidates(&self, query: &ScoredPostsQuery) -> Result Result "Transformer": function hk_rms_norm (line 112) | def hk_rms_norm( class Linear (line 121) | class Linear(hk.Linear): method __init__ (line 122) | def __init__( method __call__ (line 134) | def __call__( # type: ignore class RMSNorm (line 162) | class RMSNorm(hk.RMSNorm): method __init__ (line 163) | def __init__( method __call__ (line 172) | def __call__(self, inputs: jax.Array): function rotate_half (line 197) | def rotate_half( class RotaryEmbedding (line 205) | class RotaryEmbedding(hk.Module): method __init__ (line 214) | def __init__( method __call__ (line 225) | def __call__( class MultiHeadAttention (line 264) | class MultiHeadAttention(hk.Module): method __init__ (line 265) | def __init__( method __call__ (line 286) | def __call__( method _linear_projection (line 366) | def _linear_projection( class MHABlock (line 379) | class MHABlock(hk.Module): method __call__ (line 388) | def __call__( class DenseBlock (line 415) | class DenseBlock(hk.Module): method __call__ (line 422) | def __call__( class DecoderLayer (line 444) | class DecoderLayer(hk.Module): method __call__ (line 456) | def __call__( function layer_norm (line 500) | def layer_norm(x): class Transformer (line 505) | class Transformer(hk.Module): method __call__ (line 516) | def __call__( FILE: phoenix/recsys_model.py class HashConfig (line 33) | class HashConfig: class RecsysEmbeddings (line 42) | class RecsysEmbeddings: class RecsysModelOutput (line 56) | class RecsysModelOutput(NamedTuple): class RecsysBatch (line 62) | class RecsysBatch(NamedTuple): function block_user_reduce (line 79) | def block_user_reduce( function block_history_reduce (line 122) | def block_history_reduce( function block_candidate_reduce (line 185) | def block_candidate_reduce( class PhoenixModelConfig (line 246) | class PhoenixModelConfig: method __post_init__ (line 264) | def __post_init__(self): method initialize (line 268) | def initialize(self): method make (line 272) | def make(self): class PhoenixModel (line 285) | class PhoenixModel(hk.Module): method _get_action_embeddings (line 293) | def _get_action_embeddings( method _single_hot_to_embeddings (line 323) | def _single_hot_to_embeddings( method _get_unembedding (line 353) | def _get_unembedding(self) -> jax.Array: method build_inputs (line 365) | def build_inputs( method __call__ (line 439) | def __call__( FILE: phoenix/recsys_retrieval_model.py class RetrievalOutput (line 38) | class RetrievalOutput(NamedTuple): class CandidateTower (line 47) | class CandidateTower(hk.Module): method __call__ (line 57) | def __call__(self, post_author_embedding: jax.Array) -> jax.Array: class PhoenixRetrievalModelConfig (line 103) | class PhoenixRetrievalModelConfig: method __post_init__ (line 124) | def __post_init__(self): method initialize (line 128) | def initialize(self): method make (line 132) | def make(self): class PhoenixRetrievalModel (line 145) | class PhoenixRetrievalModel(hk.Module): method _get_action_embeddings (line 161) | def _get_action_embeddings( method _single_hot_to_embeddings (line 186) | def _single_hot_to_embeddings( method build_user_representation (line 206) | def build_user_representation( method build_candidate_representation (line 278) | def build_candidate_representation( method __call__ (line 314) | def __call__( method _retrieve_top_k (line 346) | def _retrieve_top_k( FILE: phoenix/run_ranker.py function main (line 24) | def main(): FILE: phoenix/run_retrieval.py function main (line 31) | def main(): FILE: phoenix/runners.py function create_dummy_batch_from_config (line 41) | def create_dummy_batch_from_config( function create_dummy_embeddings_from_config (line 80) | def create_dummy_embeddings_from_config( class BaseModelRunner (line 121) | class BaseModelRunner(ABC): method model (line 129) | def model(self) -> Any: method _model_name (line 134) | def _model_name(self) -> str: method make_forward_fn (line 139) | def make_forward_fn(self): method initialize (line 143) | def initialize(self): class BaseInferenceRunner (line 156) | class BaseInferenceRunner(ABC): method runner (line 163) | def runner(self) -> BaseModelRunner: method _get_num_actions (line 167) | def _get_num_actions(self) -> int: method create_dummy_batch (line 174) | def create_dummy_batch(self, batch_size: int = 1) -> RecsysBatch: method create_dummy_embeddings (line 185) | def create_dummy_embeddings(self, batch_size: int = 1) -> RecsysEmbedd... method initialize (line 197) | def initialize(self): class RankingOutput (line 225) | class RankingOutput(NamedTuple): class ModelRunner (line 258) | class ModelRunner(BaseModelRunner): method __init__ (line 263) | def __init__(self, model: PhoenixModelConfig, bs_per_device: float = 2... method model (line 269) | def model(self) -> PhoenixModelConfig: method _model_name (line 273) | def _model_name(self) -> str: method make_forward_fn (line 276) | def make_forward_fn(self): # type: ignore method init (line 283) | def init( method load_or_init (line 291) | def load_or_init( class RecsysInferenceRunner (line 302) | class RecsysInferenceRunner(BaseInferenceRunner): method __init__ (line 307) | def __init__(self, runner: ModelRunner, name: str): method runner (line 312) | def runner(self) -> ModelRunner: method initialize (line 315) | def initialize(self): method rank (line 376) | def rank(self, batch: RecsysBatch, recsys_embeddings: RecsysEmbeddings... function create_example_batch (line 389) | def create_example_batch( class RetrievalOutput (line 490) | class RetrievalOutput(NamedTuple): class RetrievalModelRunner (line 504) | class RetrievalModelRunner(BaseModelRunner): method __init__ (line 509) | def __init__( method model (line 520) | def model(self) -> PhoenixRetrievalModelConfig: method _model_name (line 524) | def _model_name(self) -> str: method make_forward_fn (line 527) | def make_forward_fn(self): # type: ignore method init (line 542) | def init( method load_or_init (line 555) | def load_or_init( class RecsysRetrievalInferenceRunner (line 568) | class RecsysRetrievalInferenceRunner(BaseInferenceRunner): method __init__ (line 582) | def __init__(self, runner: RetrievalModelRunner, name: str): method runner (line 589) | def runner(self) -> RetrievalModelRunner: method initialize (line 592) | def initialize(self): method encode_user (line 642) | def encode_user(self, batch: RecsysBatch, recsys_embeddings: RecsysEmb... method encode_candidates (line 654) | def encode_candidates( method set_corpus (line 668) | def set_corpus( method retrieve (line 682) | def retrieve( function create_example_corpus (line 706) | def create_example_corpus( FILE: phoenix/test_recsys_model.py class TestMakeRecsysAttnMask (line 22) | class TestMakeRecsysAttnMask: method test_output_shape (line 25) | def test_output_shape(self): method test_user_history_has_causal_attention (line 34) | def test_user_history_has_causal_attention(self): method test_candidates_attend_to_user_history (line 51) | def test_candidates_attend_to_user_history(self): method test_candidates_attend_to_themselves (line 65) | def test_candidates_attend_to_themselves(self): method test_candidates_do_not_attend_to_other_candidates (line 78) | def test_candidates_do_not_attend_to_other_candidates(self): method test_full_mask_structure (line 93) | def test_full_mask_structure(self): method test_dtype_preserved (line 134) | def test_dtype_preserved(self): method test_single_candidate (line 145) | def test_single_candidate(self): method test_all_candidates (line 165) | def test_all_candidates(self): FILE: phoenix/test_recsys_retrieval_model.py class TestCandidateTower (line 38) | class TestCandidateTower(unittest.TestCase): method test_candidate_tower_output_shape (line 41) | def test_candidate_tower_output_shape(self): method test_candidate_tower_normalized (line 62) | def test_candidate_tower_normalized(self): method test_candidate_tower_mean_pooling (line 84) | def test_candidate_tower_mean_pooling(self): class TestPhoenixRetrievalModel (line 109) | class TestPhoenixRetrievalModel(unittest.TestCase): method setUp (line 112) | def setUp(self): method _create_test_batch (line 145) | def _create_test_batch(self) -> tuple: method _create_test_corpus (line 159) | def _create_test_corpus(self): method test_model_forward (line 163) | def test_model_forward(self): method test_user_representation_normalized (line 183) | def test_user_representation_normalized(self): method test_candidate_representation_normalized (line 202) | def test_candidate_representation_normalized(self): method test_retrieve_top_k (line 223) | def test_retrieve_top_k(self): class TestRetrievalInferenceRunner (line 250) | class TestRetrievalInferenceRunner(unittest.TestCase): method setUp (line 253) | def setUp(self): method test_runner_initialization (line 284) | def test_runner_initialization(self): method test_runner_encode_user (line 298) | def test_runner_encode_user(self): method test_runner_retrieve (line 324) | def test_runner_retrieve(self): FILE: thunder/deserializer.rs function deserialize_tweet_event (line 8) | pub fn deserialize_tweet_event(payload: &[u8]) -> Result { function deserialize_event (line 16) | pub fn deserialize_event(payload: &[u8]) -> Result { function deserialize_tweet_event_v2 (line 24) | pub fn deserialize_tweet_event_v2(payload: &[u8]) -> Result bool { function start_partition_lag_monitor (line 77) | pub fn start_partition_lag_monitor( function start_tweet_event_processing (line 92) | pub async fn start_tweet_event_processing( function spawn_processing_threads (line 125) | fn spawn_processing_threads( function process_message_batch (line 193) | async fn process_message_batch( function process_tweet_events (line 349) | async fn process_tweet_events( FILE: thunder/kafka/tweet_events_listener_v2.rs function start_tweet_event_processing_v2 (line 23) | pub async fn start_tweet_event_processing_v2( function spawn_processing_threads_v2 (line 45) | fn spawn_processing_threads_v2( function deserialize_batch (line 119) | fn deserialize_batch( function process_tweet_events_v2 (line 170) | async fn process_tweet_events_v2( FILE: thunder/kafka/utils.rs function create_kafka_consumer (line 9) | pub async fn create_kafka_consumer( function deserialize_kafka_messages (line 22) | pub fn deserialize_kafka_messages( FILE: thunder/kafka_utils.rs constant TWEET_EVENT_TOPIC (line 15) | const TWEET_EVENT_TOPIC: &str = ""; constant TWEET_EVENT_DEST (line 16) | const TWEET_EVENT_DEST: &str = ""; constant IN_NETWORK_EVENTS_DEST (line 18) | const IN_NETWORK_EVENTS_DEST: &str = ""; constant IN_NETWORK_EVENTS_TOPIC (line 19) | const IN_NETWORK_EVENTS_TOPIC: &str = ""; function start_kafka (line 21) | pub async fn start_kafka( FILE: thunder/main.rs function main (line 16) | async fn main() -> Result<()> { FILE: thunder/posts/post_store.rs type TinyPost (line 21) | pub struct TinyPost { method new (line 28) | pub fn new(post_id: i64, created_at: i64) -> Self { type PostStore (line 39) | pub struct PostStore { method new (line 57) | pub fn new(retention_seconds: u64, request_timeout_ms: u64) -> Self { method mark_as_deleted (line 69) | pub fn mark_as_deleted(&self, posts: Vec) { method insert_posts (line 86) | pub fn insert_posts(&self, mut posts: Vec) { method finalize_init (line 103) | pub async fn finalize_init(&self) -> Result<()> { method insert_posts_internal (line 115) | fn insert_posts_internal(&self, posts: Vec) { method get_videos_by_users (line 171) | pub fn get_videos_by_users( method get_all_posts_by_users (line 193) | pub fn get_all_posts_by_users( method get_posts_from_map (line 228) | pub fn get_posts_from_map( method start_stats_logger (line 331) | pub fn start_stats_logger(self: Arc) { method start_auto_trim (line 393) | pub fn start_auto_trim(self: Arc, interval_minutes: u64) { method trim_old_posts (line 409) | pub async fn trim_old_posts(&self) -> usize { method sort_all_user_posts (line 479) | pub async fn sort_all_user_posts(&self) { method clear (line 512) | pub fn clear(&self) { method default (line 522) | fn default() -> Self { FILE: thunder/thunder_service.rs type ThunderServiceImpl (line 29) | pub struct ThunderServiceImpl { method new (line 39) | pub fn new( method server (line 56) | pub fn server(self) -> InNetworkPostsServiceServer { method analyze_and_report_post_statistics (line 64) | fn analyze_and_report_post_statistics(posts: &[LightPost], stage: &str) { method get_in_network_posts (line 154) | async fn get_in_network_posts( function score_recent (line 334) | fn score_recent(mut light_posts: Vec, max_results: usize) -> ...