Resolve which page to operate on. Priority: --target (by ID or friendly name) > --page (by index) > first page.
(
&mut self,
target: Option<&str>,
page: Option<usize>,
)
| 833 | /// Resolve which page to operate on. |
| 834 | /// Priority: --target (by ID or friendly name) > --page (by index) > first page. |
| 835 | pub async fn resolve_page( |
| 836 | &mut self, |
| 837 | target: Option<&str>, |
| 838 | page: Option<usize>, |
| 839 | ) -> Result<TargetInfo> { |
| 840 | let pages = self.get_page_targets().await?; |
| 841 | |
| 842 | if let Some(tid) = target { |
| 843 | if friendly::is_friendly(tid) { |
| 844 | return pages |
| 845 | .into_iter() |
| 846 | .find(|p| friendly::to_friendly(&p.target_id) == tid) |
| 847 | .ok_or_else(|| anyhow!("No page matching '{tid}'")); |
| 848 | } |
| 849 | return pages |
| 850 | .into_iter() |
| 851 | .find(|p| p.target_id == tid) |
| 852 | .ok_or_else(|| anyhow!("No page with target ID: {tid}")); |
| 853 | } |
| 854 | |
| 855 | let idx = page.unwrap_or(0); |
| 856 | pages |
| 857 | .into_iter() |
| 858 | .nth(idx) |
| 859 | .ok_or_else(|| anyhow!("No page at index {idx}")) |
| 860 | } |
| 861 | } |
| 862 | |
| 863 | /// Helper to join console API arguments into a single string. |
no test coverage detected