- Added
WeakDom::into_raw
for enabling fast, non-tree-preserving transformations. - Added
empty
,with_class
, andset_class
methods toInstanceBuilder
.
- Updated to rbx_types 1.3.
- Updated to rbx_types 1.2.
- Updated to rbx_types 1.1.
- Updated to rbx_types 1.0.
This release is a major, breaking change that introduces many fixes and features.
RbxTree
was replaced withWeakDom
- Changed
new
to accept anInstanceBuilder
, which can contain children. - Renamed
get_root_id
toroot_ref
. - Renamed
get_instance
toget_by_ref
. - Renamed
get_instance_mut
toget_by_ref_mut
. - Renamed
move_instance
totransfer
. - Renamed
set_parent
totransfer_within
. - Renamed
insert_instance
toinsert
. This method now accepts anInstanceBuilder
. - Removed
remove_instance
, replaced bydestroy
andtransfer
. - Removed
iter_all_ids
. - Removed
descendants
. - Added
root
androot_mut
for accessing the root instance directly.
- Changed
RbxInstanceProperties
was replaced withInstanceBuilder
- This API is completely different, as it's now a builder. It is now much easier to construct instances.
RbxInstance
was replaced withInstance
- This type now directly exposes its values instead of implementing
Deref
for another type.
- This type now directly exposes its values instead of implementing
- Moved types into the
rbx_types
crate, re-exported asrbx_dom_weak::types
.RbxId
was replaced withtypes::Ref
, which can now represent null referents.
- Added
DomViewer
API from rbx_dom_test to make testing instance trees easier.
- Updated
base64
,md5
, anduuid
dependencies
- Added
RbxTree::set_parent
, for moving instances within a single tree.
- Changed
BrickColor
to be much more correct- All BrickColor values are now correctly available instead of just palette colors
- Enum values now align with the
BrickColor.Number
property andBrickColor.new
constructor BrickColor
no longer serializes to strings in human-readable Serde formats to avoid information loss. These colors have colliding names:- Rust
- Lilac
- Gold
- Deep orange
- Added conversion from
Int32
toBrickColor
. This should fix serialization ofSpawnLocation
instances, which useint
instead ofBrickColor
in at least the XML model format.
- Fixed Serde being able to deserialize
RbxValue
andRbxValueType
's internal__Nonexhaustive
value. This should also fix Serde recommending this value to users in error messages. - Fixed
BrickColor
serialization to use Roblox color names
- Added the
SharedString
type, which is used by Roblox to reduce redundant copies of binary buffers. (#63)
- Added conversions from
BrickColor
toColor3
andColor3uint8
. (#46) - Added conversions from
Color3
toColor3uint8
and vice-versa. - Changed the human readable serialization of
BinaryString
values to be base64-encoded. This makes JSON-encoded values much smaller. This changes the details of the unspecified serialization of rbx_dom_weak. RbxValueConversion
now derivesPartialEq
.
- Added
RbxTree::move_instance
API to move instances from one tree to another. - Fixed
RbxTree::descendants
to no longer return the instance of the ID you give it. This may break code relying on this (broken) assumption, but was definitely a bug. RbxValueConversion
now derivesDebug
andClone
(#52)
- Added support for
BrickColor
(#29) - Added
RbxValue::try_convert_ref
, which can be used to try to coerce values. (#42) Content
values can now be inferred from string literals.RbxValueType
now derives Serde'sSerialize
andDeserialize
traits
- Added support for new types:
- Added
sort_children_by_key
andsort_children_unstable_by_key
methods toRbxInstance
to reorder children safely
RbxTree
andRbxInstance
are now clonable without anunimplemented
panic- Cloned trees preserve their IDs as-is and there's no public API yet to transplant instances between trees. This is mostly useful for comparing trees before/after a mutation, which we're using in Rojo.
- Marked
PhysicalProperties
aspub
- Fixed
Serialize
impl forUnresolvedRbxValue
- This removes
Serialize
fromAmbiguousRbxValue
, which should not break any real code.
- This removes
RbxValue
andRbxValueType
can no longer be matched exhaustively, which enables adding new types without breaking code in the future- Added support for
UDim
,UDim2
, andContent
value types PhysicalProperties
is no longer a stub type
- Added support for bare bool values when deserializing
UnresolvedRbxValue
- Implemented
Serialize
forUnresolvedRbxValue
andAmbiguousRbxValue
- Implemented
From<RbxValue>
forUnresolvedRbxValue
- Renamed crate from
rbx_tree
torbx_dom_weak
- Added support for
Ref
values (#8) - Added
UnresolvedRbxValue
andAmbiguousRbxValue
, intended to be used alongsiderbx_reflection
to make specifying values less verbose.
- Added new variants for
RbxValue
:- Int32
- Float32
- Enum
- Vector2
- Color3
- Color3uint8
- Vector3int16
- Vector2int16
- CFrame
- PhysicalProperties (Stub)
- Initial release
- Supports
String
,Bool
, andVector3
property values