Add ObjectId to ID type conversion

This commit is contained in:
Samuel Hurel 2020-05-07 08:42:34 +02:00
parent 74ce2171b8
commit 2288138d5b

View File

@ -1,5 +1,6 @@
use crate::{Result, ScalarType, Value};
use async_graphql_derive::Scalar;
use bson::oid::{self, ObjectId};
use std::convert::TryInto;
use std::num::ParseIntError;
use std::ops::{Deref, DerefMut};
@ -77,6 +78,20 @@ impl TryInto<Uuid> for ID {
}
}
impl From<ObjectId> for ID {
fn from(object_id: ObjectId) -> ID {
ID(object_id.to_hex())
}
}
impl TryInto<ObjectId> for ID {
type Error = oid::Error;
fn try_into(self) -> std::result::Result<ObjectId, oid::Error> {
ObjectId::with_string(&self.0)
}
}
impl PartialEq<&str> for ID {
fn eq(&self, other: &&str) -> bool {
self.0.as_str() == *other