Make graphene_core no_std

This commit is contained in:
Dennis
2022-04-22 15:15:39 +02:00
committed by Keavon Chambers
parent 90e465b35c
commit 09deee0c4d
12 changed files with 94 additions and 56 deletions

View File

@@ -1,4 +1,4 @@
use std::{any::Any, marker::PhantomData};
use core::marker::PhantomData;
use crate::Node;
@@ -38,25 +38,6 @@ impl<T> DefaultNode<T> {
}
}
use dyn_any::{DynAny, StaticType};
pub struct AnyRefNode<'n, N: Node<'n, I, Output = &'n O>, I, O>(
&'n N,
PhantomData<&'n I>,
PhantomData<&'n O>,
);
impl<'n, N: Node<'n, I, Output = &'n O>, I, O: DynAny<'n>> Node<'n, I> for AnyRefNode<'n, N, I, O> {
type Output = &'n (dyn DynAny<'n>);
fn eval(&'n self, input: &'n I) -> Self::Output {
let value: &O = self.0.eval(input);
value
}
}
impl<'n, N: Node<'n, I, Output = &'n O>, I, O: 'static> AnyRefNode<'n, N, I, O> {
pub fn new(n: &'n N) -> AnyRefNode<'n, N, I, O> {
AnyRefNode(n, PhantomData, PhantomData)
}
}
pub struct DefaultRefNode<'n, T>(ValueNode<'n, T>);
impl<'n, T: 'n> Node<'n, ()> for DefaultRefNode<'n, T> {
type Output = &'n T;