rcore::inctx
This commit is contained in:
parent
f6cc23ff5f
commit
e9e7ffb57d
@ -6,6 +6,7 @@ mod addresses;
|
||||
mod context;
|
||||
mod diagnostic;
|
||||
mod hashing;
|
||||
mod inctx;
|
||||
mod inlining;
|
||||
mod origin;
|
||||
mod point;
|
||||
@ -24,6 +25,7 @@ pub use self::addresses::{Addresses, InliningAddresses};
|
||||
pub use self::context::Context;
|
||||
pub use self::diagnostic::Diagnostic;
|
||||
pub use self::hashing::{Hash, HASH_SIZE, HASH_ZEROS};
|
||||
pub use self::inctx::InCtx;
|
||||
pub use self::inlining::{Inlining, InliningExt};
|
||||
pub use self::origin::{OFctr, Origin};
|
||||
pub use self::point::Point;
|
||||
|
19
src/rcore/inctx.rs
Normal file
19
src/rcore/inctx.rs
Normal file
@ -0,0 +1,19 @@
|
||||
use super::*;
|
||||
|
||||
pub trait InCtx<'a, Ctx: Context<'a>>: Inlining {
|
||||
fn icnext_address<E>(self, err: impl FnOnce(&[u8]) -> E) -> Result<(Address, Self), E>;
|
||||
|
||||
fn icnext_point<'b, A: Mentionable<'a, Ctx>, E>(
|
||||
self,
|
||||
factory: A::Fctr,
|
||||
err: impl FnOnce(&[u8]) -> E,
|
||||
) -> Result<(Point<'a, Ctx, A>, Self), E> {
|
||||
let (point, inctx) = self.icnext_address(err)?;
|
||||
Ok((
|
||||
Point::from_address(point, factory, inctx.iresolver()),
|
||||
inctx,
|
||||
))
|
||||
}
|
||||
|
||||
fn iresolver(&self) -> Rc<dyn Resolver<'a, Ctx>>;
|
||||
}
|
@ -34,24 +34,6 @@ impl<D: ?Sized + Deserializer> Inlining for &mut D {
|
||||
}
|
||||
}
|
||||
|
||||
pub trait InCtx<'a, Ctx: Context<'a>>: Inlining {
|
||||
fn icnext_address<E>(self, err: impl FnOnce(&[u8]) -> E) -> Result<(Address, Self), E>;
|
||||
|
||||
fn icnext_point<'b, A: Mentionable<'a, Ctx>, E>(
|
||||
self,
|
||||
factory: A::Fctr,
|
||||
err: impl FnOnce(&[u8]) -> E,
|
||||
) -> Result<(Point<'a, Ctx, A>, Self), E> {
|
||||
let (point, inctx) = self.icnext_address(err)?;
|
||||
Ok((
|
||||
Point::from_address(point, factory, inctx.iresolver()),
|
||||
inctx,
|
||||
))
|
||||
}
|
||||
|
||||
fn iresolver(&self) -> Rc<dyn Resolver<'a, Ctx>>;
|
||||
}
|
||||
|
||||
impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for &'c mut dyn DeCtx<'a, Ctx> {
|
||||
fn iread_n<A, E>(
|
||||
self,
|
||||
|
Loading…
Reference in New Issue
Block a user