use ;
use crate;
/// LINDEX redis command
///
/// Returns the element at index index in the list stored at key.
///
/// ```rust
/// use ntex_redis::{cmd, RedisConnector};
/// # use rand::{thread_rng, Rng, distributions::Alphanumeric};
/// # fn gen_random_key() -> String {
/// # thread_rng().sample_iter(&Alphanumeric).take(12).map(char::from).collect::<String>()
/// # }
///
/// #[ntex::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let redis = RedisConnector::new("127.0.0.1:6379").connect().await?;
/// let key = gen_random_key();
///
/// // create list with one value
/// redis.exec(cmd::LPush(&key, "value")).await?;
///
/// // get value by index
/// let value = redis.exec(cmd::LIndex(&key, 0)).await?;
///
/// assert_eq!(value.unwrap(), "value");
/// Ok(())
/// }
/// ```
/// LPOP redis command
///
/// Removes and returns the first element of the list stored at key.
///
/// ```rust
/// use ntex_redis::{cmd, RedisConnector};
/// # use rand::{thread_rng, Rng, distributions::Alphanumeric};
/// # fn gen_random_key() -> String {
/// # thread_rng().sample_iter(&Alphanumeric).take(12).map(char::from).collect::<String>()
/// # }
///
/// #[ntex::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let redis = RedisConnector::new("127.0.0.1:6379").connect().await?;
/// let key = gen_random_key();
///
/// // create list with one value
/// redis.exec(cmd::LPush(&key, "value")).await?;
///
/// // pop first elements from the list
/// let value = redis.exec(cmd::LPop(&key)).await?;
///
/// assert_eq!(value.unwrap(), "value");
/// Ok(())
/// }
/// ```
/// RPOP redis command
///
/// Removes and returns the last element of the list stored at key.
///
/// ```rust
/// use ntex_redis::{cmd, RedisConnector};
/// # use rand::{thread_rng, Rng, distributions::Alphanumeric};
/// # fn gen_random_key() -> String {
/// # thread_rng().sample_iter(&Alphanumeric).take(12).map(char::from).collect::<String>()
/// # }
///
/// #[ntex::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let redis = RedisConnector::new("127.0.0.1:6379").connect().await?;
/// let key = gen_random_key();
///
/// // create list with one value
/// redis.exec(cmd::LPush(&key, "value")).await?;
///
/// // pop last elements from the list
/// let value = redis.exec(cmd::RPop(&key)).await?;
///
/// assert_eq!(value.unwrap(), "value");
/// Ok(())
/// }
/// ```
/// LPUSH redis command
///
/// Insert all the specified values at the head of the list stored at key.
///
/// ```rust
/// use ntex_redis::{cmd, RedisConnector};
/// # use rand::{thread_rng, Rng, distributions::Alphanumeric};
/// # fn gen_random_key() -> String {
/// # thread_rng().sample_iter(&Alphanumeric).take(12).map(char::from).collect::<String>()
/// # }
///
/// #[ntex::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let redis = RedisConnector::new("127.0.0.1:6379").connect().await?;
/// let key = gen_random_key();
///
/// // create list with one value
/// redis.exec(
/// cmd::LPush(&key, "value1")
/// .extend(vec!["value2", "value3", "value4"])
/// ).await?;
///
/// Ok(())
/// }
/// ```
///
/// `LPushCommand::if_exists()` method changes `LPUSH` command to `LPUSHX` command
///
/// ```rust
/// use ntex_redis::{cmd, RedisConnector};
/// # use rand::{thread_rng, Rng, distributions::Alphanumeric};
/// # fn gen_random_key() -> String {
/// # thread_rng().sample_iter(&Alphanumeric).take(12).map(char::from).collect::<String>()
/// # }
///
/// #[ntex::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let redis = RedisConnector::new("127.0.0.1:6379").connect().await?;
/// let key = gen_random_key();
///
/// // create list with one value only if key already exists
/// redis.exec(
/// cmd::LPush(&key, "value1")
/// .value("value2")
/// .if_exists()
/// ).await?;
///
/// Ok(())
/// }
/// ```
/// RPUSH redis command
///
/// Insert all the specified values at the tail of the list stored at key.
;