@@ -158,17 +158,17 @@ impl<'issue> Issue<'issue> {
158158 // createissuebuilder milestone type is impl Into<Option<u64>> so we can build it immediately
159159 let mut issue = issues. create ( title) . milestone ( self . milestone ) ;
160160 // ... with optional parameters
161- if self . body . is_some ( ) {
162- issue = issue. body ( self . body . unwrap ( ) ) ;
161+ if let Some ( body ) = self . body {
162+ issue = issue. body ( body) ;
163163 }
164- if self . labels . is_some ( ) {
165- issue = issue. labels ( self . labels . clone ( ) ) ;
164+ if let Some ( labels ) = & self . labels {
165+ issue = issue. labels ( labels. clone ( ) ) ;
166166 }
167- if self . assignees . is_some ( ) {
168- issue = issue. assignees ( self . assignees . clone ( ) ) ;
167+ if let Some ( assignees ) = & self . assignees {
168+ issue = issue. assignees ( assignees. clone ( ) ) ;
169169 }
170- if self . milestone . is_some ( ) {
171- issue = issue. milestone ( self . milestone ) ;
170+ if let Some ( milestone ) = self . milestone {
171+ issue = issue. milestone ( milestone) ;
172172 }
173173
174174 log:: debug!( "creating issue" ) ;
@@ -230,23 +230,20 @@ impl<'issue> Issue<'issue> {
230230 & self ,
231231 issues : octocrab:: issues:: IssueHandler < ' octo > ,
232232 ) -> Result < octocrab:: models:: issues:: Issue , & str > {
233- // declare labels and assignees at higher scope so values are not dropped before borrow is used later in function
234- let labels: Vec < String > ;
235-
236233 // build the issue pages
237234 let mut issue_page = issues. list ( ) ;
238235 // ... with optional parameters
239- if self . state . is_some ( ) {
236+ if let Some ( state ) = self . state {
240237 // convert str state to params state
241- let params_state = str_to_params_state ( self . state . unwrap ( ) ) ?;
238+ let params_state = str_to_params_state ( state) ?;
242239 issue_page = issue_page. state ( params_state) ;
243240 }
244- if self . milestone . is_some ( ) {
245- issue_page = issue_page. milestone ( self . milestone . unwrap ( ) ) ;
241+ if let Some ( milestone ) = self . milestone {
242+ issue_page = issue_page. milestone ( milestone) ;
246243 }
247- if self . assignees . is_some ( ) {
244+ if let Some ( assignees ) = & self . assignees {
248245 // assert only one assignee in assignees
249- let num_assignees = self . assignees . as_ref ( ) . unwrap ( ) . len ( ) ;
246+ let num_assignees = assignees. len ( ) ;
250247 if num_assignees != 1 {
251248 log:: error!( "list action attempted with other than one assignee: {num_assignees}" ) ;
252249 log:: error!(
@@ -255,12 +252,11 @@ impl<'issue> Issue<'issue> {
255252 return Err ( "multiple assignees and list action" ) ;
256253 }
257254 // assign value of only assignee and use for assignee filter
258- let assignee = & self . assignees . as_ref ( ) . unwrap ( ) [ 0 ] [ ..] ;
255+ let assignee = & assignees[ 0 ] [ ..] ;
259256 issue_page = issue_page. assignee ( assignee) ;
260257 }
261- if self . labels . is_some ( ) {
262- labels = self . labels . clone ( ) . unwrap ( ) ;
263- issue_page = issue_page. labels ( & labels[ ..] ) ;
258+ if let Some ( labels) = & self . labels {
259+ issue_page = issue_page. labels ( labels) ;
264260 }
265261
266262 log:: debug!( "listing issues" ) ;
@@ -300,33 +296,28 @@ impl<'issue> Issue<'issue> {
300296 match self . number {
301297 // issue number specified
302298 Some ( number) => {
303- // declare labels and assignees at higher scope so values are not dropped before borrow is used later in function
304- let ( labels, assignees) : ( Vec < String > , Vec < String > ) ;
305-
306299 // build the issue
307300 let mut issue = issues. update ( number) ;
308301 // ... with optional parameters
309- if self . title . is_some ( ) {
310- issue = issue. title ( self . title . as_ref ( ) . unwrap ( ) ) ;
302+ if let Some ( title ) = self . title {
303+ issue = issue. title ( title) ;
311304 }
312- if self . body . is_some ( ) {
313- issue = issue. body ( self . body . as_ref ( ) . unwrap ( ) ) ;
305+ if let Some ( body ) = self . body {
306+ issue = issue. body ( body) ;
314307 }
315- if self . labels . is_some ( ) {
316- labels = self . labels . clone ( ) . unwrap ( ) ;
317- issue = issue. labels ( & labels[ ..] ) ;
308+ if let Some ( labels) = & self . labels {
309+ issue = issue. labels ( labels) ;
318310 }
319- if self . assignees . is_some ( ) {
320- assignees = self . assignees . clone ( ) . unwrap ( ) ;
321- issue = issue. assignees ( & assignees[ ..] ) ;
311+ if let Some ( assignees) = & self . assignees {
312+ issue = issue. assignees ( assignees) ;
322313 }
323- if self . state . is_some ( ) {
314+ if let Some ( state ) = self . state {
324315 // convert str state to issue_state
325- let issue_state = str_to_issue_state ( self . state . unwrap ( ) ) ?;
316+ let issue_state = str_to_issue_state ( state) ?;
326317 issue = issue. state ( issue_state) ;
327318 }
328- if self . milestone . is_some ( ) {
329- issue = issue. milestone ( self . milestone . unwrap ( ) ) ;
319+ if let Some ( milestone ) = self . milestone {
320+ issue = issue. milestone ( milestone) ;
330321 }
331322
332323 log:: debug!( "updating issue" ) ;
0 commit comments