CINXE.COM
sindresorhus’s gists · GitHub
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-74231a1f3bbb.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-8a995f0bacd4.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-f37fb7684b1f.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-9ac301c3ebe5.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-cd826e8636dc.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f91b0f603451.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-83beb16e0ecf.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-6e122dab64fc.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-18119e682df0.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-cba26849680f.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-b6cb3703b934.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ea73c9cb5377.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/profile-c01070a97d2e.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["contentful_lp_flex_features_actions","contentful_lp_flex_features_codespaces","contentful_lp_flex_features_code_review","contentful_lp_flex_features_code_search","contentful_lp_flex_features_discussions","contentful_lp_flex_features_issues","copilot_immersive_issue_preview","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_no_floating_button","copilot_topics_as_references","copilot_read_shared_conversation","copilot_duplicate_thread","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_gateway_parse_params","github_models_o3_mini_streaming","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","issues_advanced_search_nested_ownership_filters","issues_dashboard_no_redirects","marketing_pages_search_explore_provider","primer_react_css_modules_ga","react_data_router_pull_requests","react_override_default_key","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_proxima_australia_update","viewscreen_sandbox","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issue_types_prevent_private_type_creation","refresh_image_video_src","react_router_dispose_on_disconnect","codespaces_prebuild_region_target_update","turbo_app_id_restore","copilot_code_review_sign_up_closed"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-55df3d927398.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-46b9f4874d95.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-952d624642a1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-62d275b7ddd9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a90ac05d2469.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-efa32db3a345.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-394f8eb34f19.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-fdc7225e42cc.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-2906d7-2a07a295af40.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-a03ee12d659a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-b6294cf703b7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-947061-e7a6c4a19f98.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-62f3e9c52ece.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-87a4ae-eda74b9de9cd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-e429cff6ceb1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-c92ce7c6a557.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_remote-form_dist_-364c09-4bdc7a460fab.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_diffs_blob-lines_ts-app_assets_modules_github_diffs_linkable-line-n-b8c0ea-812ffaaafc3e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/gist-0a8ee9c2568f.js"></script> <title>sindresorhus’s gists · GitHub</title> <meta name="route-pattern" content="/:user_id(.:format)" data-turbo-transient> <meta name="route-controller" content="gists_users" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> <meta name="current-catalog-service-hash" content="56253a530ab9027b25719525dcbe6007461a3202218f6f5dfce5a601c121cbcb"> <meta name="request-id" content="99FE:3F210F:88B26:B6EE4:67EEFCD0" data-pjax-transient="true"/><meta name="html-safe-nonce" content="ea4b67b9418298447a696ddaa30db23199d02b03754c536184e23b66c9d40147" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5OUZFOjNGMjEwRjo4OEIyNjpCNkVFNDo2N0VFRkNEMCIsInZpc2l0b3JfaWQiOiIzNTk3NTAxNTI4NDEyMTkxOTUyIiwicmVnaW9uX2VkZ2UiOiJzb3V0aGVhc3Rhc2lhIiwicmVnaW9uX3JlbmRlciI6InNvdXRoZWFzdGFzaWEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="24ca4aa3221f225ba4aa40504e0bde2421e76dfa41f930b737e99ebcb220dc22" data-pjax-transient="true"/> <meta name="github-keyboard-shortcuts" content="copilot" data-turbo-transient="true" /> <meta name="selected-link" value="all" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="analytics-location" content="/<user-name>" data-turbo-transient="true" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="GitHub Gist: star and fork sindresorhus's gists by creating an account on GitHub."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch-gist.xml" title="Gist"> <link rel="fluid-icon" href="https://gist.github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://gist.github.com/sindresorhus" /> <meta name="twitter:image" content="https://github.com/opengraph.png" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="sindresorhus’s gists" /><meta name="twitter:description" content="GitHub Gist: star and fork sindresorhus's gists by creating an account on GitHub." /> <meta property="og:image" content="https://github.com/opengraph.png" /><meta property="og:image:alt" content="GitHub Gist: star and fork sindresorhus's gists by creating an account on GitHub." /><meta property="og:site_name" content="Gist" /><meta property="og:type" content="profile" /><meta property="og:title" content="sindresorhus’s gists" /><meta property="og:description" content="GitHub Gist: star and fork sindresorhus's gists by creating an account on GitHub." /> <meta name="hostname" content="gist.github.com"> <meta name="expected-hostname" content="gist.github.com"> <meta http-equiv="x-pjax-version" content="6fa14be29eda926f124b1f34188ddbf58c37171f539b192b1d6499a471c79f03" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="e26f9f0ba624ee85cc7ac057d8faa8618a4f25a85eab052c33d018ac0f6b1a46" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="205838381d6e5f35c535dbb12458f905bc43e0b186c86bf75aabbd0c0f36537c" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="f6d81115152bfed7ed44c2db20272fc2cd4fb00d79211b5b74dd209c04d0bd4b" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <link href="/sindresorhus.atom" rel="alternate" title="atom" type="application/atom+xml"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/gist-f06c9416fa76.css" /> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="release" content="d29302330f0f77d9589349cb32dc917e05fb2ba0"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-99bc880bd101.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-25e9ddbd9991.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-cf2f2ab8dab4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-434cb6-95f395b76298.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-9a233856b02c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-ad009fc6c345.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-1edadb4bd04c.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.7110f8bed75b67122d7a.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <div class="Header js-details-container Details flex-wrap flex-md-nowrap p-responsive" role="banner" > <div class="Header-item d-none d-md-flex"> <a class="Header-link" data-hotkey="g d" aria-label="Gist Homepage " href="/"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github v-align-middle d-inline-block d-md-none"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 68 24" version="1.1" width="68" data-view-component="true" class="octicon octicon-logo-github v-align-middle d-none d-md-inline-block"> <path d="M27.8 17.908h-.03c.013 0 .022.014.035.017l.01-.002-.016-.015Zm.005.017c-.14.001-.49.073-.861.073-1.17 0-1.575-.536-1.575-1.234v-4.652h2.385c.135 0 .24-.12.24-.283V9.302c0-.133-.12-.252-.24-.252H25.37V5.913c0-.119-.075-.193-.21-.193h-3.24c-.136 0-.21.074-.21.193V9.14s-1.636.401-1.741.416a.255.255 0 0 0-.195.253v2.021c0 .164.12.282.255.282h1.665v4.876c0 3.627 2.55 3.998 4.29 3.998.796 0 1.756-.252 1.906-.327.09-.03.135-.134.135-.238v-2.23a.264.264 0 0 0-.219-.265Zm35.549-3.272c0-2.69-1.095-3.047-2.25-2.928-.9.06-1.62.505-1.62.505v5.232s.735.506 1.83.536c1.545.044 2.04-.506 2.04-3.345ZM67 14.415c0 5.099-1.665 6.555-4.576 6.555-2.46 0-3.78-1.233-3.78-1.233s-.06.683-.135.773c-.045.089-.12.118-.21.118h-2.22c-.15 0-.286-.119-.286-.252l.03-16.514a.26.26 0 0 1 .255-.252h3.196a.26.26 0 0 1 .255.252v5.604s1.23-.788 3.03-.788l-.015-.03c1.8 0 4.456.67 4.456 5.767ZM53.918 9.05h-3.15c-.165 0-.255.119-.255.282v8.086s-.826.58-1.95.58c-1.126 0-1.456-.506-1.456-1.62v-7.06a.262.262 0 0 0-.255-.254h-3.21a.262.262 0 0 0-.256.253v7.596c0 3.27 1.846 4.087 4.381 4.087 2.085 0 3.78-1.145 3.78-1.145s.076.58.12.67c.03.074.136.133.24.133h2.011a.243.243 0 0 0 .255-.253l.03-11.103c0-.133-.12-.252-.285-.252Zm-35.556-.015h-3.195c-.135 0-.255.134-.255.297v10.91c0 .297.195.401.45.401h2.88c.3 0 .375-.134.375-.401V9.287a.262.262 0 0 0-.255-.252ZM16.787 4.01c-1.155 0-2.07.907-2.07 2.051 0 1.145.915 2.051 2.07 2.051a2.04 2.04 0 0 0 2.04-2.05 2.04 2.04 0 0 0-2.04-2.052Zm24.74-.372H38.36a.262.262 0 0 0-.255.253v6.08H33.14v-6.08a.262.262 0 0 0-.255-.253h-3.196a.262.262 0 0 0-.255.253v16.514c0 .133.135.252.255.252h3.196a.262.262 0 0 0 .255-.253v-7.06h4.966l-.03 7.06c0 .134.12.253.255.253h3.195a.262.262 0 0 0 .255-.253V3.892a.262.262 0 0 0-.255-.253Zm-28.31 7.313v8.532c0 .06-.015.163-.09.193 0 0-1.875 1.323-4.966 1.323C4.426 21 0 19.84 0 12.2S3.87 2.986 7.651 3c3.27 0 4.59.728 4.8.862.06.075.09.134.09.208l-.63 2.646c0 .134-.134.297-.3.253-.54-.164-1.35-.49-3.255-.49-2.205 0-4.575.623-4.575 5.543s2.25 5.5 3.87 5.5c1.38 0 1.875-.164 1.875-.164V13.94H7.321c-.165 0-.285-.12-.285-.253v-2.735c0-.134.12-.252.285-.252h5.61c.166 0 .286.118.286.252Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 38 24" version="1.1" width="38" data-view-component="true" class="octicon octicon-logo-gist v-align-middle d-none d-md-inline-block"> <path d="M7.05 13.095v-1.5h5.28v8.535c-1.17.555-2.925.96-5.385.96C1.665 21.09 0 17.055 0 12.045S1.695 3 6.945 3c2.43 0 3.96.495 4.92.99v1.575c-1.83-.75-3-1.095-4.92-1.095-3.855 0-5.22 3.315-5.22 7.59s1.365 7.575 5.205 7.575c1.335 0 2.97-.105 3.795-.51v-6.03H7.05Zm16.47 1.035h.045c3.33.3 4.125 1.425 4.125 3.345 0 1.815-1.14 3.615-4.71 3.615-1.125 0-2.745-.285-3.495-.585v-1.41c.705.255 1.83.54 3.495.54 2.43 0 3.09-1.035 3.09-2.13 0-1.065-.33-1.815-2.655-2.01-3.39-.3-4.095-1.5-4.095-3.12 0-1.665 1.08-3.465 4.38-3.465 1.095 0 2.34.135 3.375.585v1.41c-.915-.3-1.83-.54-3.405-.54-2.325 0-2.82.855-2.82 2.01 0 1.035.42 1.56 2.67 1.755Zm12.87-4.995v1.275h-3.63v7.305c0 1.425.795 2.01 2.25 2.01.3 0 .63 0 .915-.045v1.335c-.255.045-.75.075-1.035.075-1.965 0-3.75-.9-3.75-3.195v-7.5H28.8v-.72l2.34-.66V5.85l1.62-.465v3.75h3.63ZM16.635 9.09v9.615c0 .81.285 1.05 1.005 1.05v1.335c-1.71 0-2.58-.705-2.58-2.58V9.09h1.575Zm.375-3.495c0 .66-.51 1.17-1.17 1.17a1.14 1.14 0 0 1-1.155-1.17c0-.66.48-1.17 1.155-1.17s1.17.51 1.17 1.17Z"></path> </svg> </a> </div> <div class="Header-item d-md-none"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="Header-link js-details-target btn-link"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars"> <path d="M3.75 5.25a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Zm0 6a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Zm0 6a.75.75 0 0 0 0 1.5h16.5a.75.75 0 0 0 0-1.5H3.75Z"></path> </svg> </button> </div> <div class="Header-item Header-item--full js-site-search flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mr-md-3 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex"> <div class="header-search flex-self-stretch flex-md-self-auto mr-0 mr-md-3 mb-3 mb-md-0"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/search" accept-charset="UTF-8" method="get"> <div class="d-flex"> <primer-text-field class="FormControl width-full FormControl--fullWidth"> <label class="sr-only FormControl-label" for="q"> Search Gists </label> <div class="FormControl-input-wrap"> <input placeholder="Search..." aria-describedby="validation-5d509de3-8648-414e-811c-a0775ef9b9a1" data-target="primer-text-field.inputElement " class="form-control FormControl-input FormControl-medium rounded-right-0" type="text" name="q" id="q" /> </div> <div class="FormControl-inlineValidation" id="validation-5d509de3-8648-414e-811c-a0775ef9b9a1" hidden="hidden"> <span class="FormControl-inlineValidation--visual" data-target="primer-text-field.validationSuccessIcon" hidden><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-check-circle-fill"> <path d="M6 0a6 6 0 1 1 0 12A6 6 0 0 1 6 0Zm-.705 8.737L9.63 4.403 8.392 3.166 5.295 6.263l-1.7-1.702L2.356 5.8l2.938 2.938Z"></path> </svg></span> <span class=" FormControl-inlineValidation--visual" data-target="primer-text-field.validationErrorIcon"><svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg></span> <span></span> </div> </primer-text-field> <button id="icon-button-59d37a5d-6a6c-4f07-920c-94a4d6174232" aria-labelledby="tooltip-5afcb34a-85a8-4a78-9f0a-5e812865ab24" type="submit" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium rounded-left-0"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search Button-visual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </button><tool-tip id="tooltip-5afcb34a-85a8-4a78-9f0a-5e812865ab24" for="icon-button-59d37a5d-6a6c-4f07-920c-94a4d6174232" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Search Gists</tool-tip> </form> </div> </div> <nav aria-label="Global" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto"> <a class="Header-link mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, go to all gists, text:all gists" href="/discover">All gists</a> <a class="Header-link mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, go to GitHub, text:Back to GitHub" href="https://github.com">Back to GitHub</a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/sindresorhus","user_id":null}}" data-hydro-click-hmac="e3aa599564f0d9658c3cdd8e31e8e12d3218dd7a23949ea744d9267652ef4e7e" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2Fsindresorhus"> Sign in </a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-0 border-top border-md-top-0 border-white-fade" data-ga-click="Header, sign up" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/sindresorhus","user_id":null}}" data-hydro-click-hmac="81b6a16c1c7d8eceb7528718b7733a17c0d9a619383410ac12fedd2b1087d194" href="/join?return_to=https%3A%2F%2Fgist.github.com%2Fsindresorhus&source=header-gist"> Sign up </a></nav> </div> <div class="Header-item Header-item--full flex-justify-center d-md-none position-relative"> <a class="Header-link" data-hotkey="g d" aria-label="Gist Homepage " href="/"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github v-align-middle d-inline-block d-md-none"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 68 24" version="1.1" width="68" data-view-component="true" class="octicon octicon-logo-github v-align-middle d-none d-md-inline-block"> <path d="M27.8 17.908h-.03c.013 0 .022.014.035.017l.01-.002-.016-.015Zm.005.017c-.14.001-.49.073-.861.073-1.17 0-1.575-.536-1.575-1.234v-4.652h2.385c.135 0 .24-.12.24-.283V9.302c0-.133-.12-.252-.24-.252H25.37V5.913c0-.119-.075-.193-.21-.193h-3.24c-.136 0-.21.074-.21.193V9.14s-1.636.401-1.741.416a.255.255 0 0 0-.195.253v2.021c0 .164.12.282.255.282h1.665v4.876c0 3.627 2.55 3.998 4.29 3.998.796 0 1.756-.252 1.906-.327.09-.03.135-.134.135-.238v-2.23a.264.264 0 0 0-.219-.265Zm35.549-3.272c0-2.69-1.095-3.047-2.25-2.928-.9.06-1.62.505-1.62.505v5.232s.735.506 1.83.536c1.545.044 2.04-.506 2.04-3.345ZM67 14.415c0 5.099-1.665 6.555-4.576 6.555-2.46 0-3.78-1.233-3.78-1.233s-.06.683-.135.773c-.045.089-.12.118-.21.118h-2.22c-.15 0-.286-.119-.286-.252l.03-16.514a.26.26 0 0 1 .255-.252h3.196a.26.26 0 0 1 .255.252v5.604s1.23-.788 3.03-.788l-.015-.03c1.8 0 4.456.67 4.456 5.767ZM53.918 9.05h-3.15c-.165 0-.255.119-.255.282v8.086s-.826.58-1.95.58c-1.126 0-1.456-.506-1.456-1.62v-7.06a.262.262 0 0 0-.255-.254h-3.21a.262.262 0 0 0-.256.253v7.596c0 3.27 1.846 4.087 4.381 4.087 2.085 0 3.78-1.145 3.78-1.145s.076.58.12.67c.03.074.136.133.24.133h2.011a.243.243 0 0 0 .255-.253l.03-11.103c0-.133-.12-.252-.285-.252Zm-35.556-.015h-3.195c-.135 0-.255.134-.255.297v10.91c0 .297.195.401.45.401h2.88c.3 0 .375-.134.375-.401V9.287a.262.262 0 0 0-.255-.252ZM16.787 4.01c-1.155 0-2.07.907-2.07 2.051 0 1.145.915 2.051 2.07 2.051a2.04 2.04 0 0 0 2.04-2.05 2.04 2.04 0 0 0-2.04-2.052Zm24.74-.372H38.36a.262.262 0 0 0-.255.253v6.08H33.14v-6.08a.262.262 0 0 0-.255-.253h-3.196a.262.262 0 0 0-.255.253v16.514c0 .133.135.252.255.252h3.196a.262.262 0 0 0 .255-.253v-7.06h4.966l-.03 7.06c0 .134.12.253.255.253h3.195a.262.262 0 0 0 .255-.253V3.892a.262.262 0 0 0-.255-.253Zm-28.31 7.313v8.532c0 .06-.015.163-.09.193 0 0-1.875 1.323-4.966 1.323C4.426 21 0 19.84 0 12.2S3.87 2.986 7.651 3c3.27 0 4.59.728 4.8.862.06.075.09.134.09.208l-.63 2.646c0 .134-.134.297-.3.253-.54-.164-1.35-.49-3.255-.49-2.205 0-4.575.623-4.575 5.543s2.25 5.5 3.87 5.5c1.38 0 1.875-.164 1.875-.164V13.94H7.321c-.165 0-.285-.12-.285-.253v-2.735c0-.134.12-.252.285-.252h5.61c.166 0 .286.118.286.252Z"></path> </svg> <svg aria-hidden="true" height="24" viewBox="0 0 38 24" version="1.1" width="38" data-view-component="true" class="octicon octicon-logo-gist v-align-middle d-none d-md-inline-block"> <path d="M7.05 13.095v-1.5h5.28v8.535c-1.17.555-2.925.96-5.385.96C1.665 21.09 0 17.055 0 12.045S1.695 3 6.945 3c2.43 0 3.96.495 4.92.99v1.575c-1.83-.75-3-1.095-4.92-1.095-3.855 0-5.22 3.315-5.22 7.59s1.365 7.575 5.205 7.575c1.335 0 2.97-.105 3.795-.51v-6.03H7.05Zm16.47 1.035h.045c3.33.3 4.125 1.425 4.125 3.345 0 1.815-1.14 3.615-4.71 3.615-1.125 0-2.745-.285-3.495-.585v-1.41c.705.255 1.83.54 3.495.54 2.43 0 3.09-1.035 3.09-2.13 0-1.065-.33-1.815-2.655-2.01-3.39-.3-4.095-1.5-4.095-3.12 0-1.665 1.08-3.465 4.38-3.465 1.095 0 2.34.135 3.375.585v1.41c-.915-.3-1.83-.54-3.405-.54-2.325 0-2.82.855-2.82 2.01 0 1.035.42 1.56 2.67 1.755Zm12.87-4.995v1.275h-3.63v7.305c0 1.425.795 2.01 2.25 2.01.3 0 .63 0 .915-.045v1.335c-.255.045-.75.075-1.035.075-1.965 0-3.75-.9-3.75-3.195v-7.5H28.8v-.72l2.34-.66V5.85l1.62-.465v3.75h3.63ZM16.635 9.09v9.615c0 .81.285 1.05 1.005 1.05v1.335c-1.71 0-2.58-.705-2.58-2.58V9.09h1.575Zm.375-3.495c0 .66-.51 1.17-1.17 1.17a1.14 1.14 0 0 1-1.155-1.17c0-.66.48-1.17 1.155-1.17s1.17.51 1.17 1.17Z"></path> </svg> </a> </div> <div class="Header-item f4 mr-0" role="navigation" aria-label="Sign in or sign up"> <a class="Header-link no-underline mr-3" data-ga-click="Header, sign in" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://gist.github.com/sindresorhus","user_id":null}}" data-hydro-click-hmac="e3aa599564f0d9658c3cdd8e31e8e12d3218dd7a23949ea744d9267652ef4e7e" href="https://gist.github.com/auth/github?return_to=https%3A%2F%2Fgist.github.com%2Fsindresorhus"> Sign in </a> <a class="Header-link d-inline-block no-underline border color-border-default rounded px-2 py-1" data-ga-click="Header, sign up" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"gist header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://gist.github.com/sindresorhus","user_id":null}}" data-hydro-click-hmac="81b6a16c1c7d8eceb7528718b7733a17c0d9a619383410ac12fedd2b1087d194" href="/join?return_to=https%3A%2F%2Fgist.github.com%2Fsindresorhus&source=header-gist"> Sign up </a> </div> </div> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-fa226d0a-3539-40c1-903b-d7e84bdd3340" aria-labelledby="tooltip-98feadec-a9cc-46cd-8c78-d628384687a3" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-98feadec-a9cc-46cd-8c78-d628384687a3" for="icon-button-fa226d0a-3539-40c1-903b-d7e84bdd3340" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled data-project-hovercards-enabled > <div itemscope itemtype="http://schema.org/Code"> <main id="gist-pjax-container"> <div class="gist-detail-intro gist-banner pb-3"> <div class="text-center container-lg px-3"> <p class="lead"> Instantly share code, notes, and snippets. </p> </div> </div> <div class="container-xl px-3 px-md-4 px-lg-5 mt-4"> <div class="gutter d-flex flex-md-row flex-column"> <div class="h-card col-md-3 col-12" itemscope itemtype="http://schema.org/Person"> <div class="js-profile-editable-replace"> <div class="clearfix d-flex d-md-block flex-items-center mb-4 mb-md-0"> <div class="position-relative d-inline-block col-2 col-md-12 mr-3 mr-md-0 flex-shrink-0" style="z-index:4;" > <a class="d-block" itemprop="image" href="https://avatars.githubusercontent.com/u/170270?v=4"><img style="height:auto;" alt="View sindresorhus's full-sized avatar" src="https://avatars.githubusercontent.com/u/170270?v=4" width="260" height="260" class="avatar avatar-user width-full border color-bg-default" /></a> </div> <div class="vcard-names-container float-left js-profile-editable-names col-12 py-3" > <h1 class="vcard-names "> <span class="p-name vcard-fullname d-block overflow-hidden" itemprop="name"> Sindre Sorhus </span> <span class="p-nickname vcard-username d-block" itemprop="additionalName"> sindresorhus </span> </h1> </div> </div> <div class="d-flex flex-column"> <div class="flex-order-1 flex-md-order-none"> </div> <div class="js-profile-editable-area d-flex flex-column d-md-block"> <div class="p-note user-profile-bio mb-3 js-user-profile-bio f4" data-bio-text="Full-Time Open-Sourcerer. Focused on Swift & JavaScript. Makes macOS apps, CLI tools, npm packages." ><div>Full-Time Open-Sourcerer. Focused on Swift & JavaScript. Makes macOS apps, CLI tools, npm packages.</div></div> <div class="flex-order-1 flex-md-order-none mt-2 mt-md-0"> <div class="mb-3"> <a class="Link--secondary no-underline no-wrap" href="https://github.com/sindresorhus?tab=followers"> <svg text="muted" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path> </svg> <span class="text-bold color-fg-default">72k</span> followers </a> · <a class="Link--secondary no-underline no-wrap" href="https://github.com/sindresorhus?tab=following"> <span class="text-bold color-fg-default">31</span> following </a> </div> </div> <ul class="vcard-details"> <li itemprop="url" data-test-selector="profile-website-url" class="vcard-detail pt-1 "><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link"> <path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path> </svg> <a rel="nofollow me" class="Link--primary wb-break-all" href="https://sindresorhus.com/apps">https://sindresorhus.com/apps</a> </li> <li itemprop="social" class="vcard-detail pt-1 "><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" role="img" aria-labelledby="amop66mertm48rzmmvyz62oc8cs28imo" class="octicon"><title id="amop66mertm48rzmmvyz62oc8cs28imo">X</title><path fill="currentColor" d="M9.332 6.925 14.544 1h-1.235L8.783 6.145 5.17 1H1l5.466 7.78L1 14.993h1.235l4.78-5.433 3.816 5.433H15L9.332 6.925ZM7.64 8.848l-.554-.775L2.68 1.91h1.897l3.556 4.975.554.775 4.622 6.466h-1.897L7.64 8.848Z"></path></svg> <a rel="nofollow me" class="Link--primary wb-break-all" href="https://twitter.com/sindresorhus">@sindresorhus</a> </li> <li itemprop="social" class="vcard-detail pt-1 "><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" role="img" aria-labelledby="aqqzq8323t05ej3vhs9p0a57c1b9efzm" class="octicon"><title id="aqqzq8323t05ej3vhs9p0a57c1b9efzm">Mastodon</title> <path d="M8.29202 0.000202252C6.27825 0.00837918 4.27877 0.264357 3.23839 0.744626C3.23839 0.744626 1 1.76482 1 5.23985C1 9.37638 0.997 14.5711 4.70851 15.5757C6.12991 15.9582 7.35227 16.0405 8.33499 15.9838C10.1184 15.883 11.0005 15.3359 11.0005 15.3359L10.9406 14.0165C10.9406 14.0165 9.78462 14.4244 8.35322 14.3776C6.93515 14.3276 5.44121 14.221 5.20853 12.4481C5.1872 12.2832 5.17662 12.1163 5.17728 11.9501C8.18209 12.697 10.7444 12.2754 11.4497 12.19C13.4191 11.9503 15.1336 10.7139 15.3522 9.58385C15.6949 7.80294 15.6661 5.23985 15.6661 5.23985C15.6661 1.76482 13.4316 0.744626 13.4316 0.744626C12.3345 0.231649 10.3058 -0.00797468 8.29202 0.000202252ZM6.13696 2.65066C6.82691 2.66919 7.5087 2.97824 7.92872 3.63106L8.33499 4.32203L8.73995 3.63106C9.58333 2.31808 11.4736 2.40001 12.3729 3.41595C13.2023 4.3825 13.0175 5.00632 13.0175 9.32441V9.32571H11.3859V5.56839C11.3859 3.80952 9.14622 3.74159 9.14622 5.81219V7.9894H7.52505V5.81219C7.52505 3.74159 5.28666 3.80821 5.28666 5.56709V9.32441H3.65117C3.65117 5.00298 3.46969 4.37515 4.29573 3.41595C4.74875 2.90464 5.44701 2.63214 6.13696 2.65066Z" fill="currentColor"></path> </svg> <a rel="nofollow me" class="Link--primary wb-break-all" href="https://mastodon.social/@sindresorhus">@sindresorhus@mastodon.social</a> </li> <li itemprop="social" class="vcard-detail pt-1 "><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" role="img" aria-labelledby="acoqzz9hc2epcirgep9oyja1xlj7tvmx" class="octicon" width="16" height="16"><title id="acoqzz9hc2epcirgep9oyja1xlj7tvmx">Bluesky</title><path fill="currentColor" d="M3.468 1.948C5.303 3.325 7.276 6.118 8 7.616c.725-1.498 2.697-4.29 4.532-5.668C13.855.955 16 .186 16 2.632c0 .489-.28 4.105-.444 4.692-.572 2.04-2.653 2.561-4.504 2.246 3.236.551 4.06 2.375 2.281 4.2-3.376 3.464-4.852-.87-5.23-1.98-.07-.204-.103-.3-.103-.218 0-.081-.033.014-.102.218-.379 1.11-1.855 5.444-5.231 1.98-1.778-1.825-.955-3.65 2.28-4.2-1.85.315-3.932-.205-4.503-2.246C.28 6.737 0 3.12 0 2.632 0 .186 2.145.955 3.468 1.948Z"></path></svg> <a rel="nofollow me" class="Link--primary wb-break-all" href="https://bsky.app/profile/sindresorhus.bsky.social">@sindresorhus.bsky.social</a> </li> <li itemprop="social" class="vcard-detail pt-1 "><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" role="img" aria-labelledby="as5hj74vay4bsiys58tunenfivsv2imr" class="octicon"><title id="as5hj74vay4bsiys58tunenfivsv2imr">Instagram</title> <g clip-path="url(#clip0_202_91849)"> <path d="M4.66536 0C2.0927 0 0 2.09464 0 4.66797V11.3346C0 13.9073 2.09464 16 4.66797 16H11.3346C13.9073 16 16 13.9054 16 11.332V4.66536C16 2.0927 13.9054 0 11.332 0H4.66536ZM12.6667 2.66667C13.0347 2.66667 13.3333 2.96533 13.3333 3.33333C13.3333 3.70133 13.0347 4 12.6667 4C12.2987 4 12 3.70133 12 3.33333C12 2.96533 12.2987 2.66667 12.6667 2.66667ZM8 4C10.206 4 12 5.794 12 8C12 10.206 10.206 12 8 12C5.794 12 4 10.206 4 8C4 5.794 5.794 4 8 4ZM8 5.33333C7.29276 5.33333 6.61448 5.61428 6.11438 6.11438C5.61428 6.61448 5.33333 7.29276 5.33333 8C5.33333 8.70724 5.61428 9.38552 6.11438 9.88562C6.61448 10.3857 7.29276 10.6667 8 10.6667C8.70724 10.6667 9.38552 10.3857 9.88562 9.88562C10.3857 9.38552 10.6667 8.70724 10.6667 8C10.6667 7.29276 10.3857 6.61448 9.88562 6.11438C9.38552 5.61428 8.70724 5.33333 8 5.33333V5.33333Z" fill="currentColor"></path> </g> </svg> <a rel="nofollow me" class="Link--primary wb-break-all" href="https://instagram.com/sindresorhus">sindresorhus</a> </li> </ul> </div> </div> </div> <a class="btn width-full text-center mt-3" href="https://github.com/sindresorhus"> View GitHub Profile </a> </div> <div class="col-9 col-md-9 col-12"> <div class="pagehead py-0 border-0 mt-md-0 mt-6 mr-md-0 mr-n3 ml-md-0 ml-n3"> <div class="px-3 mb-2"> <nav aria-label="Gist tab" data-view-component="true" class="UnderlineNav"> <ul data-view-component="true" class="UnderlineNav-body list-style-none"> <li data-view-component="true" class="d-inline-flex"> <a href="/sindresorhus" aria-current="page" data-view-component="true" class="UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square UnderlineNav-octicon"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> <span data-view-component="true">All gists</span> <span title="98" data-view-component="true" class="Counter">98</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a href="/sindresorhus/forked" data-view-component="true" class="UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-branch UnderlineNav-octicon"> <path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path> </svg> <span data-view-component="true">Forked</span> <span title="15" data-view-component="true" class="Counter">15</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a href="/sindresorhus/starred" data-view-component="true" class="UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star UnderlineNav-octicon"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> <span data-view-component="true">Starred</span> <span title="138" data-view-component="true" class="Counter">138</span> </a></li> </ul> <div data-view-component="true" class="UnderlineNav-actions"> <div class="d-lg-flex d-none"> <div class="ml-2 mr-2"> <action-menu data-select-variant="single" data-dynamic-label="" data-dynamic-label-prefix="Sort" data-view-component="true"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-button" popovertarget="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-overlay" aria-controls="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-list" aria-haspopup="true" type="button" data-view-component="true" class="Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Sort</span> </span> <span class="Button-visual Button-trailingAction"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down"> <path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path> </svg> </span> </button> <anchored-position data-target="action-menu.overlay" id="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-overlay" anchor="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-button" align="end" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-button" id="action-menu-26e38eea-789a-4f1d-aecc-7b1f07d0eaee-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-54764330-2739-4879-ab06-22208ec696cc" href="https://gist.github.com/sindresorhus?direction=desc&sort=created" role="menuitemradio" aria-checked="true" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Recently created </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-301b722e-5394-46ee-a668-34bd32f92384" href="https://gist.github.com/sindresorhus?direction=asc&sort=created" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Least recently created </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-c2effff9-84b9-4650-84ed-9c3cea50b54f" href="https://gist.github.com/sindresorhus?direction=desc&sort=updated" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Recently updated </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-0338799c-6530-499a-8a0a-b6aa085f3675" href="https://gist.github.com/sindresorhus?direction=asc&sort=updated" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Least recently updated </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu> </div> </div> </div> </nav> </div> <ul class="d-flex d-lg-none px-3 mb-2 pagehead-actions float-none"> <li> <action-menu data-select-variant="single" data-dynamic-label="" data-dynamic-label-prefix="Sort" data-view-component="true"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-button" popovertarget="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-overlay" aria-controls="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-list" aria-haspopup="true" type="button" data-view-component="true" class="Button--secondary Button--small Button"> <span class="Button-content"> <span class="Button-label">Sort</span> </span> <span class="Button-visual Button-trailingAction"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down"> <path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path> </svg> </span> </button> <anchored-position data-target="action-menu.overlay" id="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-overlay" anchor="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-button" align="end" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-button" id="action-menu-f23a2266-822f-4b3c-885f-15b4315daa4e-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-dd36ee88-5bb9-4e36-afba-7401a4c07a9d" href="https://gist.github.com/sindresorhus?direction=desc&sort=created" role="menuitemradio" aria-checked="true" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Recently created </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-9ac3f9dc-42e9-424d-abf4-f270177f788c" href="https://gist.github.com/sindresorhus?direction=asc&sort=created" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Least recently created </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-f43e52fd-4345-41ab-b509-98eacd5d5797" href="https://gist.github.com/sindresorhus?direction=desc&sort=updated" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Recently updated </span> </a> </li> <li data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-623839ad-7f65-44df-94a4-0f5c6b9d3d49" href="https://gist.github.com/sindresorhus?direction=asc&sort=updated" role="menuitemradio" aria-checked="false" data-view-component="true" class="ActionListContent"> <span class="ActionListItem-visual ActionListItem-action--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check ActionListItem-singleSelectCheckmark"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Least recently updated </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu> </li> </ul> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fbba65a774fb9da915e624807a02a6d2"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fbba65a774fb9da915e624807a02a6d2/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fbba65a774fb9da915e624807a02a6d2#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 1 comment </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/fbba65a774fb9da915e624807a02a6d2/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 3 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/fbba65a774fb9da915e624807a02a6d2"><strong class="css-truncate-target">actions.md</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2024-11-26T21:10:04Z" data-view-component="true">November 26, 2024 21:10</relative-time> </div> <span class="f6 color-fg-muted"> Shortcuts actions provided by the Actions app. Can be useful to feed into an AI. <a href="https://sindresorhus.com/actions" class="Link--inTextBlock" rel="nofollow">https://sindresorhus.com/actions</a> </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-actions-md" class="file my-2"> <div id="file-actions-md-readme" class="Box-body readme blob p-5 p-xl-6 gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="actions.md content, created by sindresorhus on 09:10PM on November 26, 2024." > <article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h2 class="heading-element" dir="auto">Add to List</h2><a id="user-content-add-to-list" class="anchor" aria-label="Permalink: Add to List" href="#add-to-list"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Adds the input item to the given list.</p> <p dir="auto">Even though the description says this action accepts input of type Files, it accepts any type.</p> <p dir="auto">Note: If you get the error “The operation failed because Shortcuts couldn't convert from Text to NSString.”, just change the preview to show a list view instead. This is a bug in the Shortcuts app.</p> <div class="markdown-heading" dir="auto"><h3 class="heading-element" dir="auto">Parameters</h3><a id="user-content-parameters" class="anchor" aria-label="Permalink: Parameters" href="#parameters"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> </article> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/895971b9711f03658931bb122a94104a"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/895971b9711f03658931bb122a94104a/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 1 fork </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/895971b9711f03658931bb122a94104a#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/895971b9711f03658931bb122a94104a/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 5 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/895971b9711f03658931bb122a94104a"><strong class="css-truncate-target">random-case-iterable.swift</strong></a> </span> <div class="color-fg-muted f6"> Last active <relative-time tense="past" datetime="2024-02-03T19:31:44Z" data-view-component="true">February 3, 2024 19:31</relative-time> </div> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-random-case-iterable-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="random-case-iterable.swift content, created by sindresorhus on 02:04PM on October 25, 2023." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="random-case-iterable.swift"> <tr> <td id="file-random-case-iterable-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-random-case-iterable-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>CaseIterable</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-random-case-iterable-swift-LC2" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>public</span> <span class=pl-k>static</span> <span class=pl-en>func</span> randomCaseIterableElement<span class=pl-kos>(</span>using generator<span class=pl-kos>:</span> <span class=pl-k>inout</span> <span class=pl-k>some</span> <span class=pl-smi>RandomNumberGenerator</span><span class=pl-kos>)</span> <span class=pl-c1>-></span> <span class=pl-smi>Self</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-random-case-iterable-swift-LC3" class="blob-code blob-code-inner js-file-line"> allCases<span class=pl-kos>.</span><span class=pl-en>randomElement</span><span class=pl-kos>(</span>using<span class=pl-kos>:</span> <span class=pl-c1>&</span>generator<span class=pl-kos>)</span>!</td> </tr> <tr> <td id="file-random-case-iterable-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-random-case-iterable-swift-LC4" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-random-case-iterable-swift-LC5" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-random-case-iterable-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-random-case-iterable-swift-LC6" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>public</span> <span class=pl-k>static</span> <span class=pl-en>func</span> randomCaseIterableElement<span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>-></span> <span class=pl-smi>Self</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-random-case-iterable-swift-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1>generator</span> <span class=pl-c1>=</span> <span class=pl-en>SystemRandomNumberGenerator</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-random-case-iterable-swift-LC8" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span> <span class=pl-en>randomCaseIterableElement</span><span class=pl-kos>(</span>using<span class=pl-kos>:</span> <span class=pl-c1>&</span>generator<span class=pl-kos>)</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-random-case-iterable-swift-LC9" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-random-case-iterable-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-random-case-iterable-swift-LC10" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b9c40ac15ce77616a306249303c05a10"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b9c40ac15ce77616a306249303c05a10/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 1 fork </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b9c40ac15ce77616a306249303c05a10#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/b9c40ac15ce77616a306249303c05a10/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 1 star </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/b9c40ac15ce77616a306249303c05a10"><strong class="css-truncate-target">NSSharingService-sharingServices-deprecation-warning-fix.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2022-10-19T07:56:27Z" data-view-component="true">October 19, 2022 07:56</relative-time> </div> <span class="f6 color-fg-muted"> macOS 13 deprecated `NSSharingService.sharingServices()`. Here's how to silence the deprecation until you can move to the new API. </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="NSSharingService-sharingServices-deprecation-warning-fix.swift content, created by sindresorhus on 07:56AM on October 19, 2022." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="NSSharingService-sharingServices-deprecation-warning-fix.swift"> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>private</span> <span class=pl-k>protocol</span> <span class=pl-smi>SilenceDeprecationNSSharingService</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC2" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>func</span> sharingServices<span class=pl-kos>(</span>forItems items<span class=pl-kos>:</span> <span class=pl-kos>[</span><span class=pl-smi>Any</span><span class=pl-kos>]</span><span class=pl-kos>)</span> <span class=pl-c1>-></span> <span class=pl-kos>[</span><span class=pl-smi>NSSharingService</span><span class=pl-kos>]</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC3" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC5" class="blob-code blob-code-inner js-file-line"><span class=pl-k>private</span> <span class=pl-k>final</span> <span class=pl-k>class</span> <span class=pl-smi>SilenceDeprecationNSSharingServiceImplementation</span><span class=pl-kos>:</span> <span class=pl-smi>SilenceDeprecationNSSharingService</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC6" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>@<span class=pl-smi>available</span><span class=pl-kos>(</span>macOS<span class=pl-kos>,</span> deprecated<span class=pl-kos>:</span> <span class=pl-c1>13</span><span class=pl-kos>)</span></span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>func</span> sharingServices<span class=pl-kos>(</span>forItems items<span class=pl-kos>:</span> <span class=pl-kos>[</span><span class=pl-smi>Any</span><span class=pl-kos>]</span><span class=pl-kos>)</span> <span class=pl-c1>-></span> <span class=pl-kos>[</span><span class=pl-smi>NSSharingService</span><span class=pl-kos>]</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC8" class="blob-code blob-code-inner js-file-line"> <span class=pl-smi>NSSharingService</span><span class=pl-kos>.</span><span class=pl-en>sharingServices</span><span class=pl-kos>(</span>forItems<span class=pl-kos>:</span> items<span class=pl-kos>)</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC9" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-nssharingservice-sharingservices-deprecation-warning-fix-swift-LC10" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/e304f157e1fc2b4e63dedc151b25b583"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/e304f157e1fc2b4e63dedc151b25b583/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/e304f157e1fc2b4e63dedc151b25b583#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/e304f157e1fc2b4e63dedc151b25b583/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 1 star </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/e304f157e1fc2b4e63dedc151b25b583"><strong class="css-truncate-target">UIScreen-screens-deprecation-warning-fix.swift</strong></a> </span> <div class="color-fg-muted f6"> Last active <relative-time tense="past" datetime="2022-10-19T21:46:56Z" data-view-component="true">October 19, 2022 21:46</relative-time> </div> <span class="f6 color-fg-muted"> iOS 16 deprecated `UIScreen#screens`. Here's how to silence the deprecation until you can move to the new API. </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-uiscreen-screens-deprecation-warning-fix-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="UIScreen-screens-deprecation-warning-fix.swift content, created by sindresorhus on 11:42AM on October 17, 2022." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="UIScreen-screens-deprecation-warning-fix.swift"> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>private</span> <span class=pl-k>protocol</span> <span class=pl-smi>SilenceDeprecationForUIScreenWindows</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC2" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1><span class=pl-k>var</span> <span class=pl-c1>screens</span></span><span class=pl-kos>:</span> <span class=pl-kos>[</span><span class=pl-smi>UIScreen</span><span class=pl-kos>]</span> <span class=pl-kos>{</span> <span class=pl-k>get</span> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC3" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC5" class="blob-code blob-code-inner js-file-line"><span class=pl-k>private</span> <span class=pl-k>final</span> <span class=pl-k>class</span> <span class=pl-smi>SilenceDeprecationForUIScreenWindowsImplementation</span><span class=pl-kos>:</span> <span class=pl-smi>SilenceDeprecationForUIScreenWindows</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC6" class="blob-code blob-code-inner js-file-line"> <span class=pl-s1>@<span class=pl-smi>available</span><span class=pl-kos>(</span>iOS<span class=pl-kos>,</span> deprecated<span class=pl-kos>:</span> <span class=pl-c1>16</span><span class=pl-kos>)</span></span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> <span class=pl-s1><span class=pl-c1>screens</span></span><span class=pl-kos>:</span> <span class=pl-kos>[</span><span class=pl-smi>UIScreen</span><span class=pl-kos>]</span> <span class=pl-kos>{</span> <span class=pl-smi>UIScreen</span><span class=pl-kos>.</span>screens <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC8" class="blob-code blob-code-inner js-file-line"><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC9" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-uiscreen-screens-deprecation-warning-fix-swift-LC10" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>UIScreen</span> <span class=pl-kos>{</span><span class=pl-kos></span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/434d1721df71664b76bc89c04acb6d21"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/434d1721df71664b76bc89c04acb6d21/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/434d1721df71664b76bc89c04acb6d21#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/434d1721df71664b76bc89c04acb6d21/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 1 star </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/434d1721df71664b76bc89c04acb6d21"><strong class="css-truncate-target">SwiftUI Placeholder idea.swift</strong></a> </span> <div class="color-fg-muted f6"> Last active <relative-time tense="past" datetime="2022-08-22T02:59:07Z" data-view-component="true">August 22, 2022 02:59</relative-time> </div> <span class="f6 color-fg-muted"> For a macOS app, if you want an action in both the main menu and the UI, it's quite boilerplaty. You need to synchronize some value with <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/focusedvalue/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/focusedvalue">@focusedvalue</a>. What if we had something like this? </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-swiftui-placeholder-idea-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="SwiftUI Placeholder idea.swift content, created by sindresorhus on 12:15AM on August 22, 2022." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="SwiftUI Placeholder idea.swift"> <tr> <td id="file-swiftui-placeholder-idea-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-swiftui-placeholder-idea-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>struct</span> CameraCommands<span class=pl-kos>:</span> <span class=pl-smi>Commands</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-swiftui-placeholder-idea-swift-LC2" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>var</span> body<span class=pl-kos>:</span> <span class=pl-k>some</span> <span class=pl-smi>Commands</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-swiftui-placeholder-idea-swift-LC3" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>CommandGroup</span><span class=pl-kos>(</span>replacing<span class=pl-kos>:</span> <span class=pl-kos>.</span>newItem<span class=pl-kos>)</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-swiftui-placeholder-idea-swift-LC4" class="blob-code blob-code-inner js-file-line"> // This menu item will be enabled when the key view has a button with `.command(.takePhoto)`. The action logic is implemented in the button.</td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-swiftui-placeholder-idea-swift-LC5" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>Placeholder</span><span class=pl-kos>(</span><span class=pl-s>"</span><span class=pl-s>Take Photo</span><span class=pl-s>"</span><span class=pl-kos>,</span> id<span class=pl-kos>:</span> <span class=pl-kos>.</span>takePhoto<span class=pl-kos>)</span></td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-swiftui-placeholder-idea-swift-LC6" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-swiftui-placeholder-idea-swift-LC7" class="blob-code blob-code-inner js-file-line"> // Alternatively, it could be:</td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-swiftui-placeholder-idea-swift-LC8" class="blob-code blob-code-inner js-file-line"> // Button("Take Photo") {}</td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-swiftui-placeholder-idea-swift-LC9" class="blob-code blob-code-inner js-file-line"> // .placeholder(.takePhoto)</td> </tr> <tr> <td id="file-swiftui-placeholder-idea-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-swiftui-placeholder-idea-swift-LC10" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/a4706e81fbac24b5380a0d6d6bfb584e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/a4706e81fbac24b5380a0d6d6bfb584e/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/a4706e81fbac24b5380a0d6d6bfb584e#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/a4706e81fbac24b5380a0d6d6bfb584e/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 0 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/a4706e81fbac24b5380a0d6d6bfb584e"><strong class="css-truncate-target">Collection+safe.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2022-01-19T13:18:07Z" data-view-component="true">January 19, 2022 13:18</relative-time> </div> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-collection-safe-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="Collection+safe.swift content, created by sindresorhus on 01:18PM on January 19, 2022." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="Collection+safe.swift"> <tr> <td id="file-collection-safe-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-collection-safe-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>Collection</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-collection-safe-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-collection-safe-swift-LC2" class="blob-code blob-code-inner js-file-line"> <span class=pl-c1>/**</span></td> </tr> <tr> <td id="file-collection-safe-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-collection-safe-swift-LC3" class="blob-code blob-code-inner js-file-line"> Returns the element at the given index if any<span class=pl-kos>,</span> <span class=pl-smi>otherwise</span> `nil`<span class=pl-kos>.</span></td> </tr> <tr> <td id="file-collection-safe-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-collection-safe-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-collection-safe-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-collection-safe-swift-LC5" class="blob-code blob-code-inner js-file-line"> ```</td> </tr> <tr> <td id="file-collection-safe-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-collection-safe-swift-LC6" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>guard</span> <span class=pl-k>let</span> element <span class=pl-c1>=</span> <span class=pl-en>array</span><span class=pl-kos>[</span>position<span class=pl-kos>]</span> <span class=pl-k>else</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-collection-safe-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-collection-safe-swift-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>return</span></td> </tr> <tr> <td id="file-collection-safe-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-collection-safe-swift-LC8" class="blob-code blob-code-inner js-file-line"> <span class=pl-kos>}</span></td> </tr> <tr> <td id="file-collection-safe-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-collection-safe-swift-LC9" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-collection-safe-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-collection-safe-swift-LC10" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>print</span><span class=pl-kos>(</span>element<span class=pl-kos>)</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/06dbd418aa3e62b489a1fe3a1c6decb5"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/06dbd418aa3e62b489a1fe3a1c6decb5/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/06dbd418aa3e62b489a1fe3a1c6decb5#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/06dbd418aa3e62b489a1fe3a1c6decb5/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 0 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/06dbd418aa3e62b489a1fe3a1c6decb5"><strong class="css-truncate-target">NSView+shake.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2022-01-12T17:25:04Z" data-view-component="true">January 12, 2022 17:25</relative-time> </div> <span class="f6 color-fg-muted"> Shake a NSView </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-nsview-shake-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="NSView+shake.swift content, created by sindresorhus on 05:25PM on January 12, 2022." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="NSView+shake.swift"> <tr> <td id="file-nsview-shake-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-nsview-shake-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>NSView</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-nsview-shake-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-nsview-shake-swift-LC2" class="blob-code blob-code-inner js-file-line"> /**</td> </tr> <tr> <td id="file-nsview-shake-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-nsview-shake-swift-LC3" class="blob-code blob-code-inner js-file-line"> Shake the view.</td> </tr> <tr> <td id="file-nsview-shake-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-nsview-shake-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-nsview-shake-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-nsview-shake-swift-LC5" class="blob-code blob-code-inner js-file-line"> - Note: It will do nothing if the user has enabled the “Reduce motion” accessibility preference.</td> </tr> <tr> <td id="file-nsview-shake-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-nsview-shake-swift-LC6" class="blob-code blob-code-inner js-file-line"> */</td> </tr> <tr> <td id="file-nsview-shake-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-nsview-shake-swift-LC7" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>func</span> shake<span class=pl-kos>(</span></td> </tr> <tr> <td id="file-nsview-shake-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-nsview-shake-swift-LC8" class="blob-code blob-code-inner js-file-line"> duration<span class=pl-kos>:</span> <span class=pl-smi>TimeInterval</span> <span class=pl-c1>=</span> <span class=pl-c1>0.3</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-nsview-shake-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-nsview-shake-swift-LC9" class="blob-code blob-code-inner js-file-line"> direction<span class=pl-kos>:</span> <span class=pl-smi>NSUserInterfaceLayoutOrientation</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-nsview-shake-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-nsview-shake-swift-LC10" class="blob-code blob-code-inner js-file-line"> moveAmount<span class=pl-kos>:</span> <span class=pl-smi>Double</span> <span class=pl-c1>=</span> <span class=pl-c1>5</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fc6b8c5966a569dd9f39faaaa7b3ba70"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fc6b8c5966a569dd9f39faaaa7b3ba70/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/fc6b8c5966a569dd9f39faaaa7b3ba70#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/fc6b8c5966a569dd9f39faaaa7b3ba70/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 0 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/fc6b8c5966a569dd9f39faaaa7b3ba70"><strong class="css-truncate-target">Sequence+splittingEvenly.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2021-11-09T09:57:59Z" data-view-component="true">November 9, 2021 09:57</relative-time> </div> <span class="f6 color-fg-muted"> <a href="https://twitter.com/sindresorhus/status/1455456708759748615" class="Link--inTextBlock" rel="nofollow">https://twitter.com/sindresorhus/status/1455456708759748615</a> </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-sequence-splittingevenly-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="Sequence+splittingEvenly.swift content, created by sindresorhus on 09:57AM on November 09, 2021." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="Sequence+splittingEvenly.swift"> <tr> <td id="file-sequence-splittingevenly-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-sequence-splittingevenly-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>Collection</span> <span class=pl-k>where</span> Element<span class=pl-kos>:</span> <span class=pl-smi>Comparable</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-sequence-splittingevenly-swift-LC2" class="blob-code blob-code-inner js-file-line"> /**</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-sequence-splittingevenly-swift-LC3" class="blob-code blob-code-inner js-file-line"> Returns the index of the first occurrence of the lowest value in the collection.</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-sequence-splittingevenly-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-sequence-splittingevenly-swift-LC5" class="blob-code blob-code-inner js-file-line"> ```</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-sequence-splittingevenly-swift-LC6" class="blob-code blob-code-inner js-file-line"> [4, 2, 3, 2, 5].firstIndexOfMinElement()</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-sequence-splittingevenly-swift-LC7" class="blob-code blob-code-inner js-file-line"> //=> 1</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-sequence-splittingevenly-swift-LC8" class="blob-code blob-code-inner js-file-line"> ```</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-sequence-splittingevenly-swift-LC9" class="blob-code blob-code-inner js-file-line"> */</td> </tr> <tr> <td id="file-sequence-splittingevenly-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-sequence-splittingevenly-swift-LC10" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>func</span> firstIndexOfMinElement<span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>-></span> <span class=pl-smi>Index</span><span class=pl-c1><span class=pl-c1>?</span></span> <span class=pl-kos>{</span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/659acccc099e9bb2091d0009178ecc2a"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/659acccc099e9bb2091d0009178ecc2a/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 0 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/659acccc099e9bb2091d0009178ecc2a#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 0 comments </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/659acccc099e9bb2091d0009178ecc2a/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 0 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/659acccc099e9bb2091d0009178ecc2a"><strong class="css-truncate-target">UnexpectedNilError.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2021-11-03T05:56:40Z" data-view-component="true">November 3, 2021 05:56</relative-time> </div> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-unexpectednilerror-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="UnexpectedNilError.swift content, created by sindresorhus on 05:56AM on November 03, 2021." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="UnexpectedNilError.swift"> <tr> <td id="file-unexpectednilerror-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-unexpectednilerror-swift-LC1" class="blob-code blob-code-inner js-file-line">// Using `LocalizedError` here as the `.localizedDescription` for `Error` is often missing in places like an alert and Crashlytics/Sentry.</td> </tr> <tr> <td id="file-unexpectednilerror-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-unexpectednilerror-swift-LC2" class="blob-code blob-code-inner js-file-line"><span class=pl-k>struct</span> UnexpectedNilError<span class=pl-kos>:</span> <span class=pl-smi>LocalizedError</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-unexpectednilerror-swift-LC3" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>let</span> <span class=pl-s1>message</span><span class=pl-kos>:</span> <span class=pl-smi>String</span><span class=pl-c1><span class=pl-c1>?</span></span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-unexpectednilerror-swift-LC4" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>let</span> <span class=pl-s1>file</span><span class=pl-kos>:</span> <span class=pl-smi>String</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-unexpectednilerror-swift-LC5" class="blob-code blob-code-inner js-file-line"> <span class=pl-k>let</span> <span class=pl-s1>line</span><span class=pl-kos>:</span> <span class=pl-smi>Int</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-unexpectednilerror-swift-LC6" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-unexpectednilerror-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-unexpectednilerror-swift-LC7" class="blob-code blob-code-inner js-file-line"> init<span class=pl-kos>(</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-unexpectednilerror-swift-LC8" class="blob-code blob-code-inner js-file-line"> _ message<span class=pl-kos>:</span> <span class=pl-smi>String</span><span class=pl-c1><span class=pl-c1>?</span></span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-unexpectednilerror-swift-LC9" class="blob-code blob-code-inner js-file-line"> file<span class=pl-kos>:</span> <span class=pl-smi>String</span> <span class=pl-c1>=</span> #fileID<span class=pl-kos>,</span></td> </tr> <tr> <td id="file-unexpectednilerror-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-unexpectednilerror-swift-LC10" class="blob-code blob-code-inner js-file-line"> line<span class=pl-kos>:</span> <span class=pl-smi>Int</span> <span class=pl-c1>=</span> #line</td> </tr> </table> </div> </div> </div> </div> </div> <div class="gist-snippet"> <div class="gist-snippet-meta d-flex flex-lg-row flex-column width-full"> <ul class="col-lg-5 col-12 flex-order-2 f6 mt-lg-0 mt-3 mb-lg-0 mb-2 d-flex flex-lg-justify-end"> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b37c9ab01b79b754ca1690aaa266c410"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> 1 file </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b37c9ab01b79b754ca1690aaa266c410/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> 6 forks </a> </li> <li class="d-inline-block mr-lg-3 mr-2"> <a class="Link--muted" href="/sindresorhus/b37c9ab01b79b754ca1690aaa266c410#comments"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> 1 comment </a> </li> <li class="d-inline-block"> <a class="Link--muted" href="/sindresorhus/b37c9ab01b79b754ca1690aaa266c410/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> 16 stars </a> </li> </ul> <div class="flex-order-1 col-lg-7 col-12 d-flex"> <div class="d-lg-inline-block d-none v-align-top mt-1"> <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus"><img class=" avatar-user" src="https://avatars.githubusercontent.com/u/170270?s=60&v=4" width="30" height="30" alt="@sindresorhus" /></a> </div> <div class="d-inline-block px-lg-2 px-0"> <span> <a data-hovercard-type="user" data-hovercard-url="/users/sindresorhus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/sindresorhus">sindresorhus</a> / <a href="/sindresorhus/b37c9ab01b79b754ca1690aaa266c410"><strong class="css-truncate-target">PHImageManager-requestImage-async.swift</strong></a> </span> <div class="color-fg-muted f6"> Created <relative-time tense="past" datetime="2021-11-03T05:46:58Z" data-view-component="true">November 3, 2021 05:46</relative-time> </div> <span class="f6 color-fg-muted"> How to use `PHImageManager#requestImage` with async/await in Swift. </span> </div> </div> </div> <div class="js-gist-file-update-container js-task-list-container"> <div id="file-phimagemanager-requestimage-async-swift" class="file my-2"> <div itemprop="text" class="Box-body p-0 blob-wrapper data type-swift gist-border-0" style="overflow: auto" tabindex="0" role="region" aria-label="PHImageManager-requestImage-async.swift content, created by sindresorhus on 05:46AM on November 03, 2021." > <div class="js-check-bidi js-blob-code-container blob-code-content"> <template class="js-file-alert-template"> <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span> This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a> </span> <div data-view-component="true" class="flash-action"> <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn"> Show hidden characters </a> </div> </div></template> <template class="js-line-alert-template"> <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span></template> <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip data-tagsearch-path="PHImageManager-requestImage-async.swift"> <tr> <td id="file-phimagemanager-requestimage-async-swift-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td> <td id="file-phimagemanager-requestimage-async-swift-LC1" class="blob-code blob-code-inner js-file-line"><span class=pl-k>import</span> Photos</td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td> <td id="file-phimagemanager-requestimage-async-swift-LC2" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td> <td id="file-phimagemanager-requestimage-async-swift-LC3" class="blob-code blob-code-inner js-file-line"><span class=pl-k>struct</span> <span class=pl-smi>UnexpectedNilError</span><span class=pl-kos>:</span> <span class=pl-smi>Error</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td> <td id="file-phimagemanager-requestimage-async-swift-LC4" class="blob-code blob-code-inner js-file-line"> </td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td> <td id="file-phimagemanager-requestimage-async-swift-LC5" class="blob-code blob-code-inner js-file-line"><span class=pl-k>extension</span> <span class=pl-smi>PHImageManager</span> <span class=pl-kos>{</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td> <td id="file-phimagemanager-requestimage-async-swift-LC6" class="blob-code blob-code-inner js-file-line"> <span class=pl-en>func</span> requestImage<span class=pl-kos>(</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td> <td id="file-phimagemanager-requestimage-async-swift-LC7" class="blob-code blob-code-inner js-file-line"> for asset<span class=pl-kos>:</span> <span class=pl-smi>PHAsset</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td> <td id="file-phimagemanager-requestimage-async-swift-LC8" class="blob-code blob-code-inner js-file-line"> targetSize<span class=pl-kos>:</span> <span class=pl-smi>CGSize</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td> <td id="file-phimagemanager-requestimage-async-swift-LC9" class="blob-code blob-code-inner js-file-line"> contentMode<span class=pl-kos>:</span> <span class=pl-smi>PHImageContentMode</span><span class=pl-kos>,</span></td> </tr> <tr> <td id="file-phimagemanager-requestimage-async-swift-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td> <td id="file-phimagemanager-requestimage-async-swift-LC10" class="blob-code blob-code-inner js-file-line"> options<span class=pl-kos>:</span> <span class=pl-smi>PHImageRequestOptions</span><span class=pl-c1><span class=pl-c1>?</span></span></td> </tr> </table> </div> </div> </div> </div> </div> <div class="paginate-container"> <div class="pagination"><span class="disabled color-fg-muted">Newer</span><a rel="nofollow" href="https://gist.github.com/sindresorhus?page=2">Older</a></div> </div> </div> </div> </div> </main> </div> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <span> © 2025 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>