pub struct Adult {Show 21 fields
pub person_guid: Option<String>,
pub member_id: Option<String>,
pub person_full_name: Option<String>,
pub first_name: String,
pub middle_name: Option<String>,
pub last_name: String,
pub nick_name: Option<String>,
pub position: Option<String>,
pub position_id: Option<i64>,
pub key3: Option<String>,
pub position_trained: Option<String>,
pub ypt_status: Option<String>,
pub ypt_completed_date: Option<String>,
pub ypt_expired_date: Option<String>,
pub registrar_info: Option<RegistrarInfo>,
pub primary_email_info: Option<PrimaryEmailInfo>,
pub primary_phone_info: Option<PrimaryPhoneInfo>,
pub primary_address_info: Option<PrimaryAddressInfo>,
pub user_id: Option<i64>,
pub email: Option<String>,
pub phone_number: Option<String>,
}Fields§
§person_guid: Option<String>§member_id: Option<String>§person_full_name: Option<String>§first_name: String§middle_name: Option<String>§last_name: String§nick_name: Option<String>§position: Option<String>§position_id: Option<i64>§key3: Option<String>§position_trained: Option<String>§ypt_status: Option<String>§ypt_completed_date: Option<String>§ypt_expired_date: Option<String>§registrar_info: Option<RegistrarInfo>§primary_email_info: Option<PrimaryEmailInfo>§primary_phone_info: Option<PrimaryPhoneInfo>§primary_address_info: Option<PrimaryAddressInfo>§user_id: Option<i64>§email: Option<String>§phone_number: Option<String>Implementations§
Source§impl Adult
impl Adult
Sourcepub fn is_position_trained(&self) -> Option<bool>
pub fn is_position_trained(&self) -> Option<bool>
Classify position_trained field into a boolean. “Trained”/“Y”/“Yes”/“true” → Some(true), “Not Trained”/“N”/“No”/“false” → Some(false), else None
Sourcepub fn position_trained_display(&self) -> &str
pub fn position_trained_display(&self) -> &str
Display string for position training status.
Sourcepub fn matches_search(&self, query_lowercase: &str) -> bool
pub fn matches_search(&self, query_lowercase: &str) -> bool
Check if this adult matches a search query (case-insensitive). Query should already be lowercased.
pub fn full_name(&self) -> String
pub fn display_name(&self) -> String
pub fn display_name_full(&self) -> String
pub fn role(&self) -> String
pub fn get_user_id(&self) -> i64
pub fn phone(&self) -> Option<String>
pub fn email(&self) -> Option<String>
Sourcepub fn deduplicate(adults: Vec<Adult>) -> Vec<Adult>
pub fn deduplicate(adults: Vec<Adult>) -> Vec<Adult>
Deduplicate adults by person_guid, combining multiple positions.
The BSA API returns duplicate entries for adults who hold multiple positions (e.g., both “Assistant Scoutmaster” and “Committee Member”). This merges duplicates into single entries with combined position strings (e.g., “Assistant Scoutmaster, Committee Member”).
Adults without a person_guid are kept as separate entries. Result is sorted by last_name, first_name.
Source§impl Adult
impl Adult
Sourcepub fn cmp_by_column(a: &Adult, b: &Adult, column: AdultSortColumn) -> Ordering
pub fn cmp_by_column(a: &Adult, b: &Adult, column: AdultSortColumn) -> Ordering
Compare two adults by the given column, with name as tiebreaker.