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: escape.rs
    path of file: ./repos/surrealdb/core/src/sql/v2
    
    the code of the file until where you have to start completion: use std::borrow::Cow;

const SINGLE: char = '\'';

const BRACKETL: char = '⟨';
const BRACK
    
pub fn quote_plain_str(s: &str) -> String {
	#[cfg(not(feature = "experimental-parser"))]
	{
		if crate::syn::thing(s).is_ok() {
			let mut ret = quote_str(s);
			ret.insert(0, 's');
			return ret;
		}

		let mut ret = quote_str(s);
		// HACK: We need to prefix strands which look like records, uuids, or datetimes with an `s`
		// otherwise the strands will parsed as a different type when parsed again.
		// This is not required for the new parser.
		// Because this only required for the old parse we just reference the partial parsers
		// directly to avoid having to create a common interface between the old and new parser.
		if crate::syn::v1::literal::uuid(&ret).is_ok()
			|| crate::syn::v1::literal::datetime(&ret).is_ok()
			|| crate::syn::thing(&ret).is_ok()
		{
			ret.insert(0, 's');
		}
		ret
	}

	#[cfg(feature = "experimental-parser")]
	quote_str(s)
}