Implement PartialEq for ReturnSuccess (#3888)

This makes ReturnValue and ReturnSuccess usable in assert_eq!.
This commit is contained in:
Peter Cunderlik 2021-08-05 03:55:41 +01:00 committed by GitHub
parent 55acdaaf8c
commit 7dcc08985c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View file

@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
use std::path::PathBuf;
/// Specifies a path to a configuration file and its type
#[derive(Debug, Serialize, Deserialize, Clone)]
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub enum ConfigPath {
/// Path to the global configuration file
Global(PathBuf),

View file

@ -4,7 +4,7 @@ use nu_source::{DbgDocBldr, DebugDocBuilder, PrettyDebug};
use serde::{Deserialize, Serialize};
/// The inner set of actions for the command processor. Each denotes a way to change state in the processor without changing it directly from the command itself.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum CommandAction {
/// Change to a new directory or path (in non-filesystem situations)
ChangePath(String),
@ -63,7 +63,7 @@ impl PrettyDebug for CommandAction {
}
/// The fundamental success type in the pipeline. Commands return these values as their main responsibility
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum ReturnSuccess {
/// A value to be used or shown to the user
Value(Value),
@ -123,3 +123,14 @@ impl ReturnSuccess {
Ok(ReturnSuccess::Action(input))
}
}
#[cfg(test)]
mod tests {
use crate::{ReturnSuccess, ReturnValue, UntaggedValue};
#[test]
fn return_value_can_be_used_in_assert_eq() {
let v: ReturnValue = ReturnSuccess::value(UntaggedValue::nothing());
assert_eq!(v, v);
}
}