nullable reference inlining
This commit is contained in:
		
							parent
							
								
									455ffd6063
								
							
						
					
					
						commit
						2f2ba19f2c
					
				@ -19,7 +19,8 @@ class BinaryTree(RecursiveMentionable, Generic[TreeKeyType]):
 | 
			
		||||
 | 
			
		||||
    def __init__(
 | 
			
		||||
            self,
 | 
			
		||||
            treel: NullableReference['BinaryTree[TreeKeyType]'], treer: NullableReference['BinaryTree[TreeKeyType]'],
 | 
			
		||||
            treel: NullableReference['BinaryTree[TreeKeyType]'],
 | 
			
		||||
            treer: NullableReference['BinaryTree[TreeKeyType]'],
 | 
			
		||||
            key: HashPoint[TreeKeyType]
 | 
			
		||||
    ):
 | 
			
		||||
        assert isinstance(treel, NullableReference)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
from typing import Generic, Iterable, TypeVar
 | 
			
		||||
from typing import Generic, Iterable, Optional, TypeVar
 | 
			
		||||
 | 
			
		||||
from rainbowadn.core import *
 | 
			
		||||
from rainbowadn.inlining import *
 | 
			
		||||
from .notnull import *
 | 
			
		||||
from .null import *
 | 
			
		||||
from .nullable import *
 | 
			
		||||
@ -69,11 +70,14 @@ class NullableReference(RecursiveMentionable, Generic[Referenced]):
 | 
			
		||||
        return await self.hashpoint().resolve()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NullableReferenceFactory(RainbowFactory[NullableReference[Referenced]], Generic[Referenced]):
 | 
			
		||||
class NullableReferenceFactory(Inlining[NullableReference[Referenced]], Generic[Referenced]):
 | 
			
		||||
    def __init__(self, factory: RainbowFactory[Referenced]):
 | 
			
		||||
        assert isinstance(factory, RainbowFactory)
 | 
			
		||||
        self.factory = factory
 | 
			
		||||
 | 
			
		||||
    def size(self) -> Optional[int]:
 | 
			
		||||
        return HashPoint.HASH_LENGTH
 | 
			
		||||
 | 
			
		||||
    def from_bytes(self, source: bytes, resolver: HashResolver) -> NullableReference[Referenced]:
 | 
			
		||||
        assert isinstance(source, bytes)
 | 
			
		||||
        assert isinstance(resolver, HashResolver)
 | 
			
		||||
@ -81,7 +85,7 @@ class NullableReferenceFactory(RainbowFactory[NullableReference[Referenced]], Ge
 | 
			
		||||
            return NullableReference(Null(), self.factory)
 | 
			
		||||
        else:
 | 
			
		||||
            return NullableReference.of(
 | 
			
		||||
                ResolverOrigin(self.factory, source, resolver).hash_point()
 | 
			
		||||
                ResolverMetaOrigin(resolver).hash_point(self.factory, source)
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
    def loose(self) -> RainbowFactory[NullableReference[Referenced]]:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user