pub trait ResolutionRepository: Send + Sync {
// Required methods
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: Decimal,
total_voting_power_contre: Decimal,
total_voting_power_abstention: Decimal,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn close_voting<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
final_status: ResolutionStatus,
voix_plafonnees: Option<Value>,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_meeting_vote_summary<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Port (trait) for Resolution repository operations
Required Methods§
Sourcefn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a new resolution
Sourcefn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find a resolution by ID
Sourcefn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_meeting_id<'life0, 'async_trait>(
&'life0 self,
meeting_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find all resolutions for a meeting
Sourcefn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_status<'life0, 'async_trait>(
&'life0 self,
status: ResolutionStatus,
) -> Pin<Box<dyn Future<Output = Result<Vec<Resolution>, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Find resolutions by status
Sourcefn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
resolution: &'life1 Resolution,
) -> Pin<Box<dyn Future<Output = Result<Resolution, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update a resolution (for vote counts and status changes)
Sourcefn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Delete a resolution
Sourcefn update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: Decimal,
total_voting_power_contre: Decimal,
total_voting_power_abstention: Decimal,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_vote_counts<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
vote_count_pour: i32,
vote_count_contre: i32,
vote_count_abstention: i32,
total_voting_power_pour: Decimal,
total_voting_power_contre: Decimal,
total_voting_power_abstention: Decimal,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update vote counts for a resolution
Sourcefn close_voting<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
final_status: ResolutionStatus,
voix_plafonnees: Option<Value>,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close_voting<'life0, 'async_trait>(
&'life0 self,
resolution_id: Uuid,
final_status: ResolutionStatus,
voix_plafonnees: Option<Value>,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close voting on a resolution and set final status
voix_plafonnees consigne les écarts de l’Art. 3.87 § 7 al. 4 : pour
chaque votant ramené au poids des autres, ce dont il disposait et ce
qui lui a été retenu. None quand personne n’a été plafonné, ce qui
est le cas ordinaire.
Le paramètre est dans cette signature et non dans une méthode à part : clore un vote et consigner comment il a été décompté est un seul acte. Les séparer laisserait exister un état où la résolution est close sans que son décompte soit justifiable.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".