Skip to content

Commit

Permalink
refactor: Box deferred resolver instead of Arc
Browse files Browse the repository at this point in the history
  • Loading branch information
Stumblinbear committed Jan 28, 2024
1 parent 39a825a commit 739a9c5
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions crates/agui_core/src/element/deferred/erased.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use std::{any::Any, sync::Arc};
use std::any::Any;

use crate::{
element::{
Expand All @@ -11,7 +11,7 @@ use crate::{

pub trait ErasedElementDeferred: ElementLifecycle {
#[allow(private_interfaces)]
fn create_resolver(&self) -> Arc<dyn DeferredResolver>;
fn create_resolver(&self) -> Box<dyn DeferredResolver>;

#[allow(private_interfaces)]
fn build(&self, resolver: &dyn DeferredResolver) -> Widget;
Expand All @@ -22,8 +22,8 @@ where
T: ElementDeferred,
{
#[allow(private_interfaces)]
fn create_resolver(&self) -> Arc<dyn DeferredResolver> {
Arc::new(ErasedDeferredResolver {
fn create_resolver(&self) -> Box<dyn DeferredResolver> {
Box::new(ErasedDeferredResolver {
resolver: self.create_resolver(),

current_param: None,
Expand Down
2 changes: 1 addition & 1 deletion crates/agui_core/src/element/deferred/resolver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::any::Any;

use crate::unit::Constraints;

pub(crate) trait DeferredResolver: Any + Send + Sync {
pub(crate) trait DeferredResolver: Any + Send {
fn resolve(&mut self, constraints: Constraints) -> bool;

fn param(&self) -> Option<&(dyn Any + Send)>;
Expand Down
6 changes: 3 additions & 3 deletions crates/agui_core/src/engine/sync_data.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use std::{hash::BuildHasherDefault, sync::Arc};
use std::hash::BuildHasherDefault;

use rustc_hash::FxHasher;
use slotmap::SparseSecondaryMap;
Expand All @@ -11,9 +11,9 @@ use crate::{
pub struct SyncTreeData<'sync> {
pub(crate) element_tree: &'sync Tree<ElementId, Element>,

pub(crate) deferred_resolvers: &'sync SparseSecondaryMap<
pub(crate) deferred_resolvers: &'sync mut SparseSecondaryMap<
ElementId,
Arc<dyn DeferredResolver>,
Box<dyn DeferredResolver>,
BuildHasherDefault<FxHasher>,
>,
}

0 comments on commit 739a9c5

Please sign in to comment.