Pre: move Either to mentat_core::util.
This commit is contained in:
parent
03c0930285
commit
c2ec1a6bdf
4 changed files with 39 additions and 31 deletions
|
@ -57,3 +57,32 @@ impl<T> OptionEffect<T> for Option<T> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, Hash, Ord, PartialOrd, PartialEq)]
|
||||||
|
pub enum Either<L, R> {
|
||||||
|
Left(L),
|
||||||
|
Right(R),
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cribbed from https://github.com/bluss/either/blob/f793721f3fdeb694f009e731b23a2858286bc0d6/src/lib.rs#L219-L259.
|
||||||
|
impl<L, R> Either<L, R> {
|
||||||
|
pub fn map_left<F, M>(self, f: F) -> Either<M, R>
|
||||||
|
where F: FnOnce(L) -> M
|
||||||
|
{
|
||||||
|
use self::Either::*;
|
||||||
|
match self {
|
||||||
|
Left(l) => Left(f(l)),
|
||||||
|
Right(r) => Right(r),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn map_right<F, S>(self, f: F) -> Either<L, S>
|
||||||
|
where F: FnOnce(R) -> S
|
||||||
|
{
|
||||||
|
use self::Either::*;
|
||||||
|
match self {
|
||||||
|
Left(l) => Left(l),
|
||||||
|
Right(r) => Right(f(r)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
use mentat_core::util::Either;
|
||||||
|
|
||||||
use errors;
|
use errors;
|
||||||
use errors::ErrorKind;
|
use errors::ErrorKind;
|
||||||
use types::{
|
use types::{
|
||||||
|
@ -33,33 +35,6 @@ pub enum Term<E, V> {
|
||||||
AddOrRetract(OpType, E, Entid, V),
|
AddOrRetract(OpType, E, Entid, V),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, Hash, Ord, PartialOrd, PartialEq)]
|
|
||||||
pub enum Either<L, R> {
|
|
||||||
Left(L),
|
|
||||||
Right(R),
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cribbed from https://github.com/bluss/either/blob/f793721f3fdeb694f009e731b23a2858286bc0d6/src/lib.rs#L219-L259.
|
|
||||||
impl<L, R> Either<L, R> {
|
|
||||||
pub fn map_left<F, M>(self, f: F) -> Either<M, R>
|
|
||||||
where F: FnOnce(L) -> M
|
|
||||||
{
|
|
||||||
match self {
|
|
||||||
Left(l) => Left(f(l)),
|
|
||||||
Right(r) => Right(r),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn map_right<F, S>(self, f: F) -> Either<L, S>
|
|
||||||
where F: FnOnce(R) -> S
|
|
||||||
{
|
|
||||||
match self {
|
|
||||||
Left(l) => Left(l),
|
|
||||||
Right(r) => Right(f(r)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
use self::Either::*;
|
use self::Either::*;
|
||||||
|
|
||||||
/// An entid that's either already in the store, or newly allocated to a tempid.
|
/// An entid that's either already in the store, or newly allocated to a tempid.
|
||||||
|
|
|
@ -64,7 +64,6 @@ use edn::{
|
||||||
use entids;
|
use entids;
|
||||||
use errors::{ErrorKind, Result};
|
use errors::{ErrorKind, Result};
|
||||||
use internal_types::{
|
use internal_types::{
|
||||||
Either,
|
|
||||||
KnownEntid,
|
KnownEntid,
|
||||||
KnownEntidOr,
|
KnownEntidOr,
|
||||||
LookupRef,
|
LookupRef,
|
||||||
|
@ -76,7 +75,10 @@ use internal_types::{
|
||||||
TermWithTempIdsAndLookupRefs,
|
TermWithTempIdsAndLookupRefs,
|
||||||
TermWithoutTempIds,
|
TermWithoutTempIds,
|
||||||
TypedValueOr,
|
TypedValueOr,
|
||||||
replace_lookup_ref};
|
replace_lookup_ref,
|
||||||
|
};
|
||||||
|
|
||||||
|
use mentat_core::util::Either;
|
||||||
|
|
||||||
use mentat_core::{
|
use mentat_core::{
|
||||||
DateTime,
|
DateTime,
|
||||||
|
|
|
@ -28,7 +28,9 @@ use internal_types::{
|
||||||
TermWithoutTempIds,
|
TermWithoutTempIds,
|
||||||
TermWithTempIds,
|
TermWithTempIds,
|
||||||
};
|
};
|
||||||
use internal_types::Either::*;
|
|
||||||
|
use mentat_core::util::Either::*;
|
||||||
|
|
||||||
use mentat_core::{
|
use mentat_core::{
|
||||||
attribute,
|
attribute,
|
||||||
Attribute,
|
Attribute,
|
||||||
|
|
Loading…
Reference in a new issue