What we covered in the previous challenges were recoverable errors, meaning they can be handled during runtime. However, in Rust we have unrecoverable errors that are so severe that the program cannot safely continue and it will shut down completely.
You can trigger an unrecoverable error using the panic!
macro, for example: panic!("This is an unrecoverable error!")
.
In this challenge, you will write a function that retrieves the value of an environment variable named DATABASE_URL
if the environment variable is not set, you will exit the program using panic!
, it makes sense to use panic!
instead of Result<T, E>
because the program will not be able to run database queries if this value isn't available.
Just to make it more interesting, there is another requirement, your function must validate that the value starts with postgresql://
, this is not a full proof validation for real life applications, but we'll keep it simple for this challenge.
Write a function, get_database_url
, that retrieves the value of the DATABASE_URL
environment variable and validates it. The function should behave as follows:
DATABASE_URL
variable is set and starts with postgresql://
, return its value as a String
.DATABASE_URL
variable is not set, the function should terminate the program by calling panic!
with the exact message "DATABASE_URL environment variable is not set."
.DATABASE_URL
variable is set but does not start with postgresql://
, the function should terminate the program by calling panic!
with the message "DATABASE_URL must start with 'postgresql://'"
.If you're stuck, here are some hints to help you solve the challenge:
std::env::var()
function to retrieve the value of an environment variable. e.g. std::env::var("DATABASE_URL")
.starts_with
method to check if a string starts with a specific prefix. e.g. my_string.starts_with("prefix")
.pub fn get_database_url() -> String { // Your code here... let val = std::env::var("DATABASE_URL"); match val { Ok(v) => { if v.starts_with("postgresql://") { return v.to_string(); } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, Err(s) => { panic!("DATABASE_URL environment variable is not set.") }, } }/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(db_url) => { if db_url.starts_with("postgresql://") { db_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, _ => { panic!("DATABASE_URL environment variable is not set."); } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url();println!("Database URL: {}", db_url); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();println!("Database URL: {}", db_url);}
pub fn get_database_url() -> String { // Your code here... // let url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); // if !url.starts_with("postgresql://"){ // panic!("DATABASE_URL must start with 'postgresql://'"); // } // url match std::env::var("DATABASE_URL"){ Ok(url ) => { if url.starts_with("postgresql://") ||url.starts_with("Postgresql://")|| url.starts_with("POSTGRESQL://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, Err(_)=> panic!("DATABASE_URL environment variable is not set."), }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !url.starts_with("postgresql://"){ panic!("DATABASE_URL must start with 'postgresql://'"); } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let s = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !s.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'") } s}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(val) => { if val.starts_with("postgresql://") { val } else { panic!("DATABASE_URL must start with 'postgresql://'") } }, _ => { panic!("DATABASE_URL environment variable is not set.") } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(db_url) => { if db_url.starts_with("postgresql://") { db_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, _ => { panic!("DATABASE_URL environment variable is not set."); } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if db_url.starts_with("postgresql://") { db_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(db_url) => { if db_url.starts_with("postgresql://") { db_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, _ => { panic!("DATABASE_URL environment variable is not set."); } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { let db_str = env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !db_str.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'") } db_str}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { // Your code here... let url = env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); let check = "postgresql://"; if !url.starts_with(check) { panic!("DATABASE_URL must start with 'postgresql://'"); } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { // Your code here... let url = env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); let check = "postgresql://"; if !url.starts_with(check) { panic!("DATABASE_URL must start with 'postgresql://'"); } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(s) => { if !s.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } else { return s; } }, Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL"){ Ok(url) if !url.starts_with("postgresql://") => panic!("DATABASE_URL must start with 'postgresql://'"), Ok(url)=> url , Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let _db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let _db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL"); match database_url { Ok(url) => { if url.starts_with("postgresql://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'") } } Err(_) => panic!("DATABASE_URL environment variable is not set."), }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'") } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(String) => { if std::env::var("DATABASE_URL").unwrap().starts_with("postgresql://") { return std::env::var("DATABASE_URL").unwrap() } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, _ => {panic!("DATABASE_URL environment variable is not set.");} } }/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); assert!(db_url.starts_with("postgresql://"), "DATABASE_URL must start with 'postgresql://'"); db_url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... if let Ok(url) = std::env::var("DATABASE_URL") { if url.starts_with("postgresql://") { return url; } else { panic!("DATABASE_URL must start with 'postgresql://'") } } else { panic!("DATABASE_URL environment variable is not set."); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(v) if v.starts_with("postgresql://") => v, Ok(_) => panic!("DATABASE_URL must start with 'postgresql://'"), _ => panic!("DATABASE_URL environment variable is not set."), }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(database_url) => match database_url.starts_with("postgresql://") { true => database_url, false => panic!("DATABASE_URL must start with 'postgresql://'") }, Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(database_url) => match database_url.starts_with("postgresql://") { true => database_url, false => panic!("DATABASE_URL must start with 'postgresql://'") }, Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(url) if url.starts_with("postgresql://") => url, Ok(_) => panic!("DATABASE_URL must start with 'postgresql://'"), Err(_) => panic!("DATABASE_URL environment variable is not set."), }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let db = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if db.starts_with("postgresql://") { return db } panic!("DATABASE_URL must start with 'postgresql://'")}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let _db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let _db_url = get_database_url();}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(url) => { if url.starts_with("postgresql://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'") } }, Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(url) => { if url.starts_with("postgresql://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'") } }, Err(_) => panic!("DATABASE_URL environment variable is not set.") }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let db_url = match std::env::var_os("DATABASE_URL") { Some(value) => value.to_string_lossy().into_owned(), None => panic!("DATABASE_URL environment variable is not set."), }; if !db_url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } db_url}
pub fn get_database_url() -> String { match std::env::var("DATABASE_URL") { Ok(url) if url.starts_with("postgresql://") => url, Ok(_) => panic!("DATABASE_URL must start with 'postgresql://'"), Err(_) => panic!("DATABASE_URL environment variable is not set."), }}
pub fn get_database_url() -> String { // Your code here... let db=std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if db.starts_with("postgresql://"){ return db; }else{ panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let _db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let _db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let env_var = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if env_var.starts_with("postgresql://") { return env_var; } panic!("DATABASE_URL must start with 'postgresql://'");}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let url = std::env::var("DATABASE_URL") .expect("DATABASE_URL environment variable is not set."); if !url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'") } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if database_url.starts_with("postgresql://") { database_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let url = std::env::var("DATABASE_URL"); match url { Ok(found_url) => { if found_url.to_lowercase().starts_with("postgresql://") { return found_url.to_lowercase(); } else { panic!("DATABASE_URL must start with 'postgresql://'"); } } Err(_) => { panic!("DATABASE_URL environment variable is not set."); } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if database_url.starts_with("postgresql://") { database_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if database_url.starts_with("postgresql://") { database_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if database_url.starts_with("postgresql://") { database_url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let db_url = std::env::var("DATABASE_URL"); if db_url.is_err() { panic!("DATABASE_URL environment variable is not set."); } if db_url.clone().unwrap().starts_with("postgresql://") { return db_url.unwrap().to_string(); } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { let Ok(value) = env::var("DATABASE_URL") else { panic!("DATABASE_URL environment variable is not set."); }; if !value.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } value}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use core::panic;pub fn get_database_url() -> String { let res = std::env::var("DATABASE_URL"); let url = match res { Ok(url) => url, Err(_) => panic!("DATABASE_URL environment variable is not set."), }; if url.starts_with("postgresql://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'"); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... match std::env::var("DATABASE_URL") { Ok(url) => { if url.starts_with("postgresql://") { url } else { panic!("DATABASE_URL must start with 'postgresql://'.") } } _ => panic!("DATABASE_URL environment variable is not set."), }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let url = std::env::var("DATABASE_URL"); match url { Ok(found_url) => { if found_url.to_lowercase().starts_with("postgresql://") { return found_url.to_lowercase(); } else { panic!("DATABASE_URL must start with 'postgresql://'"); } } Err(_) => { panic!("DATABASE_URL environment variable is not set."); } }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { let url = match env::var("DATABASE_URL") { Ok(url) => url, Err(_) => panic!("DATABASE_URL environment variable is not set."), }; if !url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } println!("{url}"); url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !database_url.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } database_url}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let dburl = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set: NotPresent" ); if dburl.starts_with("postgresql://") { return dburl; } panic!("DATABASE_URL must start with 'postgresql://'");}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let var = std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !var.starts_with("postgresql://"){ panic!("DATABASE_URL must start with 'postgresql://'") } var}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { // Your code here... let env_url = std::env::var("DATABASE_URL").ok(); match env_url { Some(uri) => { if uri.starts_with("postgresql://") { return uri.to_string(); } else { panic!("DATABASE_URL must start with 'postgresql://'"); } }, _ => panic!("DATABASE_URL environment variable is not set.") }}/// Example usage#[allow(unused_variables)]pub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { let env_val_result = std::env::var("DATABASE_URL"); if env_val_result.is_err() { panic!("DATABASE_URL environment variable is not set."); } let env_val = env_val_result.unwrap(); if !env_val.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } env_val}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let _db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let _db_url = get_database_url();}
use std::env;pub fn get_database_url() -> String { // Your code here... let db = env::var("DATABASE_URL").expect("DATABASE_URL environment variable is not set."); if !db.starts_with("postgresql://") { panic!("DATABASE_URL must start with 'postgresql://'"); } db}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}
pub fn get_database_url() -> String { if let Some(val) = std::env::var("DATABASE_URL").ok() { if val.starts_with("postgresql://") { val } else { panic!("DATABASE_URL must start with 'postgresql://'"); } } else { panic!("DATABASE_URL environment variable is not set."); }}/// Example usagepub fn main() { std::env::set_var("DATABASE_URL", "postgresql://localhost"); let db_url = get_database_url(); println!("Database URL: {}", db_url); std::env::remove_var("DATABASE_URL"); // Missing variable scenario let db_url = get_database_url(); std::env::set_var("DATABASE_URL", "mysql://localhost"); // Invalid prefix scenario let db_url = get_database_url();}