فهرست منبع

Fix: expose AttributeValue; update tests to pass

Reinis Mazeiks 3 سال پیش
والد
کامیت
85aa4584ff
3فایلهای تغییر یافته به همراه13 افزوده شده و 6 حذف شده
  1. 6 0
      packages/core/src/arbitrary_value.rs
  2. 4 4
      packages/core/src/lib.rs
  3. 3 2
      packages/native-core-macro/tests/update_state.rs

+ 6 - 0
packages/core/src/arbitrary_value.rs

@@ -1,9 +1,11 @@
 use std::fmt::Formatter;
 
+/// Possible values for an attribute
 // trying to keep values at 3 bytes
 #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
 #[cfg_attr(feature = "serialize", serde(untagged))]
 #[derive(Clone, Debug, PartialEq)]
+#[allow(missing_docs)]
 pub enum AttributeValue<'a> {
     Text(&'a str),
     Float32(f32),
@@ -26,6 +28,8 @@ pub enum AttributeValue<'a> {
     Any(ArbitraryAttributeValue<'a>),
 }
 
+// todo
+#[allow(missing_docs)]
 impl<'a> AttributeValue<'a> {
     pub fn is_truthy(&self) -> bool {
         match self {
@@ -113,6 +117,8 @@ impl<'de, 'a> serde::Deserialize<'de> for ArbitraryAttributeValue<'a> {
     }
 }
 
+// todo
+#[allow(missing_docs)]
 impl<'a> AttributeValue<'a> {
     pub fn as_text(&self) -> Option<&'a str> {
         match self {

+ 4 - 4
packages/core/src/lib.rs

@@ -73,10 +73,10 @@ pub(crate) mod innerlude {
 }
 
 pub use crate::innerlude::{
-    AnyEvent, Attribute, Component, DioxusElement, DomEdit, Element, ElementId, ElementIdIterator,
-    EventHandler, EventPriority, IntoVNode, LazyNodes, Listener, Mutations, NodeFactory,
-    Properties, SchedulerMsg, Scope, ScopeId, ScopeState, TaskId, UiEvent, UserEvent, VComponent,
-    VElement, VFragment, VNode, VPlaceholder, VText, VirtualDom,
+    AnyEvent, Attribute, AttributeValue, Component, DioxusElement, DomEdit, Element, ElementId,
+    ElementIdIterator, EventHandler, EventPriority, IntoVNode, LazyNodes, Listener, Mutations,
+    NodeFactory, Properties, SchedulerMsg, Scope, ScopeId, ScopeState, TaskId, UiEvent, UserEvent,
+    VComponent, VElement, VFragment, VNode, VPlaceholder, VText, VirtualDom,
 };
 
 /// The purpose of this module is to alleviate imports of many common types

+ 3 - 2
packages/native-core-macro/tests/update_state.rs

@@ -1,4 +1,5 @@
 use anymap::AnyMap;
+use dioxus_core::AttributeValue;
 use dioxus_core::VNode;
 use dioxus_core::*;
 use dioxus_core_macro::*;
@@ -347,7 +348,7 @@ fn state_reduce_parent_called_minimally_on_update() {
         edits: vec![DomEdit::SetAttribute {
             root: 1,
             field: "width",
-            value: "99%",
+            value: AttributeValue::Text("99%"),
             ns: Some("style"),
         }],
         dirty_scopes: fxhash::FxHashSet::default(),
@@ -416,7 +417,7 @@ fn state_reduce_child_called_minimally_on_update() {
         edits: vec![DomEdit::SetAttribute {
             root: 4,
             field: "width",
-            value: "99%",
+            value: AttributeValue::Text("99%"),
             ns: Some("style"),
         }],
         dirty_scopes: fxhash::FxHashSet::default(),