You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: utils.rs
    path of file: ./repos/spyglass/crates/spyglass/src/filesystem
    
    the code of the file until where you have to start completion: extern crate glob;
use chrono::{DateTime, NaiveDateTime, Utc};
use ignore::{gitignore::Gitignore, Error};
use std::{
    ffi::OsStr,
    path::{Path, PathBuf},
    time::UNIX_EPOCH,
};
use url::Url;

use crate::state::AppState;

// Create a file URI
pub fn path_to_uri(path: &Path) -> String {
    path_st
    
pub fn get_shortcut_destination(path: &Path) -> Option<PathBuf> {
    let shortcut = lnk::ShellLink::open(path);
    if let Ok(shortcut) = shortcut {
        if let Some(link_info) = &shortcut.link_info() {
            if link_info.local_base_path().is_some() {
                return Some(PathBuf::from(
                    link_info
                        .local_base_path()
                        .clone()
                        .expect("Expected local_base_path"),
                ));
            } else if link_info.local_base_path_unicode().is_some() {
                return Some(PathBuf::from(
                    link_info
                        .local_base_path_unicode()
                        .clone()
                        .expect("Expected local_base_path_unicode"),
                ));
            }
        }
    }
    None
}