Skip to main content

Archive

Trait Archive 

Source
pub trait Archive {
    type Archived: Portable;
    type Resolver;

    const COPY_OPTIMIZATION: CopyOptimization<Self> = _;

    // Required method
    fn resolve(&self, resolver: Self::Resolver, out: Place<Self::Archived>);
}
Expand description

A type that can be used without deserializing.

Archive is one of three basic traits used to work with zero-copy data and controls the layout of the data in its archived zero-copy representation. The Serialize trait helps transform types into that representation, and the Deserialize trait helps transform types back out.

Types that implement Archive must have a well-defined archived size. Unsized types can be supported using the ArchiveUnsized trait, along with SerializeUnsized and DeserializeUnsized.

Archiving is done depth-first, writing any data owned by a type before writing the data for the type itself. The type must be able to create the archived type from only its own data and its resolver.

Archived data is always treated as if it is tree-shaped, with the root owning its direct descendents and so on. Data that is not tree-shaped can be supported using special serializer and deserializer bounds (see ArchivedRc for example). In a buffer of serialized data, objects are laid out in reverse order. This means that the root object is located near the end of the buffer and leaf objects are located near the beginning.

§Examples

Most of the time, #[derive(Archive)] will create an acceptable implementation. You can use the #[rkyv(...)] attribute to control how the implementation is generated. See the Archive derive macro for more details.

use rkyv::{deserialize, rancor::Error, Archive, Deserialize, Serialize};

#[derive(Archive, Deserialize, Serialize, Debug, PartialEq)]
#[rkyv(
    // This will generate a PartialEq impl between our unarchived
    // and archived types
    compare(PartialEq),
    // Derives can be passed through to the generated type:
    derive(Debug),
)]
struct Test {
    int: u8,
    string: String,
    option: Option<Vec<i32>>,
}

fn main() {
    let value = Test {
        int: 42,
        string: "hello world".to_string(),
        option: Some(vec![1, 2, 3, 4]),
    };

    // Serializing is as easy as a single function call
    let _bytes = rkyv::to_bytes::<Error>(&value).unwrap();

    // Or you can customize your serialization for better performance or control
    // over resource usage
    use rkyv::{api::high::to_bytes_with_alloc, ser::allocator::Arena};

    let mut arena = Arena::new();
    let bytes =
        to_bytes_with_alloc::<_, Error>(&value, arena.acquire()).unwrap();

    // You can use the safe API for fast zero-copy deserialization
    let archived = rkyv::access::<ArchivedTest, Error>(&bytes[..]).unwrap();
    assert_eq!(archived, &value);

    // Or you can use the unsafe API for maximum performance
    let archived =
        unsafe { rkyv::access_unchecked::<ArchivedTest>(&bytes[..]) };
    assert_eq!(archived, &value);

    // And you can always deserialize back to the original type
    let deserialized = deserialize::<Test, Error>(archived).unwrap();
    assert_eq!(deserialized, value);
}

Note: the safe API requires the bytecheck feature.

Many of the core and standard library types already have Archive implementations available, but you may need to implement Archive for your own types in some cases the derive macro cannot handle.

In this example, we add our own wrapper that serializes a &'static str as if it’s owned. Normally you can lean on the archived version of String to do most of the work, or use the Inline to do exactly this. This example does everything to demonstrate how to implement Archive for your own types.

use core::{slice, str};

use rkyv::{
    access_unchecked,
    rancor::{Error, Fallible},
    ser::Writer,
    to_bytes,
    Archive, ArchiveUnsized, Archived, Portable, RelPtr, Serialize,
    SerializeUnsized, munge::munge, Place,
};

struct OwnedStr {
    inner: &'static str,
}

#[derive(Portable)]
#[repr(transparent)]
struct ArchivedOwnedStr {
    // This will be a relative pointer to our string
    ptr: RelPtr<str>,
}

impl ArchivedOwnedStr {
    // This will help us get the bytes of our type as a str again.
    fn as_str(&self) -> &str {
        unsafe {
            // The as_ptr() function of RelPtr will get a pointer the str
            &*self.ptr.as_ptr()
        }
    }
}

struct OwnedStrResolver {
    // This will be the position that the bytes of our string are stored at.
    // We'll use this to resolve the relative pointer of our
    // ArchivedOwnedStr.
    pos: usize,
}

// The Archive implementation defines the archived version of our type and
// determines how to turn the resolver into the archived form. The Serialize
// implementations determine how to make a resolver from the original value.
impl Archive for OwnedStr {
    type Archived = ArchivedOwnedStr;
    // This is the resolver we can create our Archived version from.
    type Resolver = OwnedStrResolver;

    // The resolve function consumes the resolver and produces the archived
    // value at the given position.
    fn resolve(
        &self,
        resolver: Self::Resolver,
        out: Place<Self::Archived>,
    ) {
        munge!(let ArchivedOwnedStr { ptr } = out);
        RelPtr::emplace_unsized(
            resolver.pos,
            self.inner.archived_metadata(),
            ptr,
        );
    }
}

// We restrict our serializer types with Writer because we need its
// capabilities to serialize the inner string. For other types, we might
// need more or less restrictive bounds on the type of S.
impl<S: Fallible + Writer + ?Sized> Serialize<S> for OwnedStr {
    fn serialize(
        &self,
        serializer: &mut S,
    ) -> Result<Self::Resolver, S::Error> {
        // This is where we want to write the bytes of our string and return
        // a resolver that knows where those bytes were written.
        // We also need to serialize the metadata for our str.
        Ok(OwnedStrResolver {
            pos: self.inner.serialize_unsized(serializer)?,
        })
    }
}

const STR_VAL: &'static str = "I'm in an OwnedStr!";
let value = OwnedStr { inner: STR_VAL };
// It works!
let buf = to_bytes::<Error>(&value).expect("failed to serialize");
let archived =
    unsafe { access_unchecked::<ArchivedOwnedStr>(buf.as_ref()) };
// Let's make sure our data got written correctly
assert_eq!(archived.as_str(), STR_VAL);

Provided Associated Constants§

Source

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly to a writer instead of calling serialize.

This optimization is disabled by default. To enable this optimization, you must unsafely attest that Self is trivially copyable using CopyOptimization::enable or CopyOptimization::enable_if.

Required Associated Types§

Source

type Archived: Portable

The archived representation of this type.

In this form, the data can be used with zero-copy deserialization.

Source

type Resolver

The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type.

Required Methods§

Source

fn resolve(&self, resolver: Self::Resolver, out: Place<Self::Archived>)

Creates the archived version of this value at the given position and writes it to the given output.

The output should be initialized field-by-field rather than by writing a whole struct. Performing a typed copy will mark all of the padding bytes as uninitialized, but they must remain set to the value they currently have. This prevents leaking uninitialized memory to the final archive.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Archive for IpAddr

Source§

impl Archive for SocketAddr

Source§

impl Archive for ActionPlan

Source§

impl Archive for Qos

Source§

impl Archive for SensorTypeMapped

Source§

impl Archive for Action

Source§

impl Archive for ShipKind
where String: Archive,

Source§

impl Archive for PacketKind

Source§

impl Archive for RatPubRegisterKind

Source§

impl Archive for bool

Source§

impl Archive for char

Source§

impl Archive for f32

Source§

impl Archive for f64

Source§

impl Archive for i8

Source§

impl Archive for i16

Source§

impl Archive for i32

Source§

impl Archive for i64

Source§

impl Archive for i128

Source§

impl Archive for isize

Source§

impl Archive for u8

Source§

impl Archive for u16

Source§

impl Archive for u32

Source§

impl Archive for u64

Source§

impl Archive for u128

Source§

impl Archive for ()

Source§

impl Archive for usize

Source§

impl Archive for CString

Source§

impl Archive for String

Source§

impl Archive for PhantomPinned

Source§

impl Archive for Ipv4Addr

Source§

impl Archive for Ipv6Addr

Source§

impl Archive for SocketAddrV4

Source§

impl Archive for SocketAddrV6

Source§

impl Archive for NonZero<i8>

Source§

impl Archive for NonZero<i16>

Source§

impl Archive for NonZero<i32>

Source§

impl Archive for NonZero<i64>

Source§

impl Archive for NonZero<i128>

Source§

impl Archive for NonZero<isize>

Source§

impl Archive for NonZero<u8>

Source§

impl Archive for NonZero<u16>

Source§

impl Archive for NonZero<u32>

Source§

impl Archive for NonZero<u64>

Source§

impl Archive for NonZero<u128>

Source§

impl Archive for NonZero<usize>

Source§

impl Archive for RangeFull

Source§

impl Archive for Duration

Source§

impl Archive for BagMsg

Source§

impl Archive for QosProfile

Source§

impl Archive for QosTime
where u64: Archive,

Source§

impl Archive for VariableHuman

Source§

impl Archive for Header
where i128: Archive,

Source§

impl Archive for Packet

Source§

impl Archive for WindAt

Source§

impl Archive for Header

Source§

impl Archive for NetworkShipAddress

Source§

impl Archive for TimeMsg

Source§

impl Archive for NonZeroI16_be

Source§

impl Archive for NonZeroI16_le

Source§

impl Archive for NonZeroI32_be

Source§

impl Archive for NonZeroI32_le

Source§

impl Archive for NonZeroI64_be

Source§

impl Archive for NonZeroI64_le

Source§

impl Archive for NonZeroI128_be

Source§

impl Archive for NonZeroI128_le

Source§

impl Archive for NonZeroU16_be

Source§

impl Archive for NonZeroU16_le

Source§

impl Archive for NonZeroU32_be

Source§

impl Archive for NonZeroU32_le

Source§

impl Archive for NonZeroU64_be

Source§

impl Archive for NonZeroU64_le

Source§

impl Archive for NonZeroU128_be

Source§

impl Archive for NonZeroU128_le

Source§

impl Archive for char_be

Source§

impl Archive for char_le

Source§

impl Archive for f32_be

Source§

impl Archive for f32_le

Source§

impl Archive for f64_be

Source§

impl Archive for f64_le

Source§

impl Archive for i16_be

Source§

impl Archive for i16_le

Source§

impl Archive for i32_be

Source§

impl Archive for i32_le

Source§

impl Archive for i64_be

Source§

impl Archive for i64_le

Source§

impl Archive for i128_be

Source§

impl Archive for i128_le

Source§

impl Archive for u16_be

Source§

impl Archive for u16_le

Source§

impl Archive for u32_be

Source§

impl Archive for u32_le

Source§

impl Archive for u64_be

Source§

impl Archive for u64_le

Source§

impl Archive for u128_be

Source§

impl Archive for u128_le

Source§

impl Archive for Duration

Source§

const COPY_OPTIMIZATION: CopyOptimization<Duration>

Source§

type Archived = ArchivedDuration

Source§

type Resolver = DurationResolver

Source§

fn resolve( &self, resolver: <Duration as Archive>::Resolver, out: Place<<Duration as Archive>::Archived>, )

Source§

impl Archive for Time

Source§

const COPY_OPTIMIZATION: CopyOptimization<Time>

Source§

type Archived = ArchivedTime

Source§

type Resolver = TimeResolver

Source§

fn resolve( &self, resolver: <Time as Archive>::Resolver, out: Place<<Time as Archive>::Archived>, )

Source§

impl Archive for Accel

Source§

const COPY_OPTIMIZATION: CopyOptimization<Accel>

Source§

type Archived = ArchivedAccel

Source§

type Resolver = AccelResolver

Source§

fn resolve( &self, resolver: <Accel as Archive>::Resolver, out: Place<<Accel as Archive>::Archived>, )

Source§

impl Archive for AccelStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<AccelStamped>

Source§

type Archived = ArchivedAccelStamped

Source§

type Resolver = AccelStampedResolver

Source§

fn resolve( &self, resolver: <AccelStamped as Archive>::Resolver, out: Place<<AccelStamped as Archive>::Archived>, )

Source§

impl Archive for AccelWithCovariance
where Accel: Archive, [f64; 36]: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<AccelWithCovariance>

Source§

type Archived = ArchivedAccelWithCovariance

Source§

type Resolver = AccelWithCovarianceResolver

Source§

fn resolve( &self, resolver: <AccelWithCovariance as Archive>::Resolver, out: Place<<AccelWithCovariance as Archive>::Archived>, )

Source§

impl Archive for AccelWithCovarianceStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<AccelWithCovarianceStamped>

Source§

type Archived = ArchivedAccelWithCovarianceStamped

Source§

type Resolver = AccelWithCovarianceStampedResolver

Source§

fn resolve( &self, resolver: <AccelWithCovarianceStamped as Archive>::Resolver, out: Place<<AccelWithCovarianceStamped as Archive>::Archived>, )

Source§

impl Archive for Inertia

Source§

const COPY_OPTIMIZATION: CopyOptimization<Inertia>

Source§

type Archived = ArchivedInertia

Source§

type Resolver = InertiaResolver

Source§

fn resolve( &self, resolver: <Inertia as Archive>::Resolver, out: Place<<Inertia as Archive>::Archived>, )

Source§

impl Archive for InertiaStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<InertiaStamped>

Source§

type Archived = ArchivedInertiaStamped

Source§

type Resolver = InertiaStampedResolver

Source§

fn resolve( &self, resolver: <InertiaStamped as Archive>::Resolver, out: Place<<InertiaStamped as Archive>::Archived>, )

Source§

impl Archive for Point32
where f32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Point32>

Source§

type Archived = ArchivedPoint32

Source§

type Resolver = Point32Resolver

Source§

fn resolve( &self, resolver: <Point32 as Archive>::Resolver, out: Place<<Point32 as Archive>::Archived>, )

Source§

impl Archive for Point
where f64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Point>

Source§

type Archived = ArchivedPoint

Source§

type Resolver = PointResolver

Source§

fn resolve( &self, resolver: <Point as Archive>::Resolver, out: Place<<Point as Archive>::Archived>, )

Source§

impl Archive for PointStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<PointStamped>

Source§

type Archived = ArchivedPointStamped

Source§

type Resolver = PointStampedResolver

Source§

fn resolve( &self, resolver: <PointStamped as Archive>::Resolver, out: Place<<PointStamped as Archive>::Archived>, )

Source§

impl Archive for Polygon

Source§

const COPY_OPTIMIZATION: CopyOptimization<Polygon>

Source§

type Archived = ArchivedPolygon

Source§

type Resolver = PolygonResolver

Source§

fn resolve( &self, resolver: <Polygon as Archive>::Resolver, out: Place<<Polygon as Archive>::Archived>, )

Source§

impl Archive for PolygonInstance

Source§

const COPY_OPTIMIZATION: CopyOptimization<PolygonInstance>

Source§

type Archived = ArchivedPolygonInstance

Source§

type Resolver = PolygonInstanceResolver

Source§

fn resolve( &self, resolver: <PolygonInstance as Archive>::Resolver, out: Place<<PolygonInstance as Archive>::Archived>, )

Source§

impl Archive for PolygonInstanceStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<PolygonInstanceStamped>

Source§

type Archived = ArchivedPolygonInstanceStamped

Source§

type Resolver = PolygonInstanceStampedResolver

Source§

fn resolve( &self, resolver: <PolygonInstanceStamped as Archive>::Resolver, out: Place<<PolygonInstanceStamped as Archive>::Archived>, )

Source§

impl Archive for PolygonStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<PolygonStamped>

Source§

type Archived = ArchivedPolygonStamped

Source§

type Resolver = PolygonStampedResolver

Source§

fn resolve( &self, resolver: <PolygonStamped as Archive>::Resolver, out: Place<<PolygonStamped as Archive>::Archived>, )

Source§

impl Archive for Pose2D
where f64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Pose2D>

Source§

type Archived = ArchivedPose2D

Source§

type Resolver = Pose2DResolver

Source§

fn resolve( &self, resolver: <Pose2D as Archive>::Resolver, out: Place<<Pose2D as Archive>::Archived>, )

Source§

impl Archive for Pose

Source§

const COPY_OPTIMIZATION: CopyOptimization<Pose>

Source§

type Archived = ArchivedPose

Source§

type Resolver = PoseResolver

Source§

fn resolve( &self, resolver: <Pose as Archive>::Resolver, out: Place<<Pose as Archive>::Archived>, )

Source§

impl Archive for PoseArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<PoseArray>

Source§

type Archived = ArchivedPoseArray

Source§

type Resolver = PoseArrayResolver

Source§

fn resolve( &self, resolver: <PoseArray as Archive>::Resolver, out: Place<<PoseArray as Archive>::Archived>, )

Source§

impl Archive for PoseStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<PoseStamped>

Source§

type Archived = ArchivedPoseStamped

Source§

type Resolver = PoseStampedResolver

Source§

fn resolve( &self, resolver: <PoseStamped as Archive>::Resolver, out: Place<<PoseStamped as Archive>::Archived>, )

Source§

impl Archive for PoseWithCovariance
where Pose: Archive, [f64; 36]: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<PoseWithCovariance>

Source§

type Archived = ArchivedPoseWithCovariance

Source§

type Resolver = PoseWithCovarianceResolver

Source§

fn resolve( &self, resolver: <PoseWithCovariance as Archive>::Resolver, out: Place<<PoseWithCovariance as Archive>::Archived>, )

Source§

impl Archive for PoseWithCovarianceStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<PoseWithCovarianceStamped>

Source§

type Archived = ArchivedPoseWithCovarianceStamped

Source§

type Resolver = PoseWithCovarianceStampedResolver

Source§

fn resolve( &self, resolver: <PoseWithCovarianceStamped as Archive>::Resolver, out: Place<<PoseWithCovarianceStamped as Archive>::Archived>, )

Source§

impl Archive for Quaternion
where f64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Quaternion>

Source§

type Archived = ArchivedQuaternion

Source§

type Resolver = QuaternionResolver

Source§

fn resolve( &self, resolver: <Quaternion as Archive>::Resolver, out: Place<<Quaternion as Archive>::Archived>, )

Source§

impl Archive for QuaternionStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<QuaternionStamped>

Source§

type Archived = ArchivedQuaternionStamped

Source§

type Resolver = QuaternionStampedResolver

Source§

fn resolve( &self, resolver: <QuaternionStamped as Archive>::Resolver, out: Place<<QuaternionStamped as Archive>::Archived>, )

Source§

impl Archive for Transform

Source§

const COPY_OPTIMIZATION: CopyOptimization<Transform>

Source§

type Archived = ArchivedTransform

Source§

type Resolver = TransformResolver

Source§

fn resolve( &self, resolver: <Transform as Archive>::Resolver, out: Place<<Transform as Archive>::Archived>, )

Source§

impl Archive for TransformStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<TransformStamped>

Source§

type Archived = ArchivedTransformStamped

Source§

type Resolver = TransformStampedResolver

Source§

fn resolve( &self, resolver: <TransformStamped as Archive>::Resolver, out: Place<<TransformStamped as Archive>::Archived>, )

Source§

impl Archive for Twist

Source§

const COPY_OPTIMIZATION: CopyOptimization<Twist>

Source§

type Archived = ArchivedTwist

Source§

type Resolver = TwistResolver

Source§

fn resolve( &self, resolver: <Twist as Archive>::Resolver, out: Place<<Twist as Archive>::Archived>, )

Source§

impl Archive for TwistStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<TwistStamped>

Source§

type Archived = ArchivedTwistStamped

Source§

type Resolver = TwistStampedResolver

Source§

fn resolve( &self, resolver: <TwistStamped as Archive>::Resolver, out: Place<<TwistStamped as Archive>::Archived>, )

Source§

impl Archive for TwistWithCovariance
where Twist: Archive, [f64; 36]: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<TwistWithCovariance>

Source§

type Archived = ArchivedTwistWithCovariance

Source§

type Resolver = TwistWithCovarianceResolver

Source§

fn resolve( &self, resolver: <TwistWithCovariance as Archive>::Resolver, out: Place<<TwistWithCovariance as Archive>::Archived>, )

Source§

impl Archive for TwistWithCovarianceStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<TwistWithCovarianceStamped>

Source§

type Archived = ArchivedTwistWithCovarianceStamped

Source§

type Resolver = TwistWithCovarianceStampedResolver

Source§

fn resolve( &self, resolver: <TwistWithCovarianceStamped as Archive>::Resolver, out: Place<<TwistWithCovarianceStamped as Archive>::Archived>, )

Source§

impl Archive for Vector3
where f64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Vector3>

Source§

type Archived = ArchivedVector3

Source§

type Resolver = Vector3Resolver

Source§

fn resolve( &self, resolver: <Vector3 as Archive>::Resolver, out: Place<<Vector3 as Archive>::Archived>, )

Source§

impl Archive for Vector3Stamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<Vector3Stamped>

Source§

type Archived = ArchivedVector3Stamped

Source§

type Resolver = Vector3StampedResolver

Source§

fn resolve( &self, resolver: <Vector3Stamped as Archive>::Resolver, out: Place<<Vector3Stamped as Archive>::Archived>, )

Source§

impl Archive for VelocityStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<VelocityStamped>

Source§

type Archived = ArchivedVelocityStamped

Source§

type Resolver = VelocityStampedResolver

Source§

fn resolve( &self, resolver: <VelocityStamped as Archive>::Resolver, out: Place<<VelocityStamped as Archive>::Archived>, )

Source§

impl Archive for Wrench

Source§

const COPY_OPTIMIZATION: CopyOptimization<Wrench>

Source§

type Archived = ArchivedWrench

Source§

type Resolver = WrenchResolver

Source§

fn resolve( &self, resolver: <Wrench as Archive>::Resolver, out: Place<<Wrench as Archive>::Archived>, )

Source§

impl Archive for WrenchStamped

Source§

const COPY_OPTIMIZATION: CopyOptimization<WrenchStamped>

Source§

type Archived = ArchivedWrenchStamped

Source§

type Resolver = WrenchStampedResolver

Source§

fn resolve( &self, resolver: <WrenchStamped as Archive>::Resolver, out: Place<<WrenchStamped as Archive>::Archived>, )

Source§

impl Archive for GridCells

Source§

const COPY_OPTIMIZATION: CopyOptimization<GridCells>

Source§

type Archived = ArchivedGridCells

Source§

type Resolver = GridCellsResolver

Source§

fn resolve( &self, resolver: <GridCells as Archive>::Resolver, out: Place<<GridCells as Archive>::Archived>, )

Source§

impl Archive for MapMetaData

Source§

const COPY_OPTIMIZATION: CopyOptimization<MapMetaData>

Source§

type Archived = ArchivedMapMetaData

Source§

type Resolver = MapMetaDataResolver

Source§

fn resolve( &self, resolver: <MapMetaData as Archive>::Resolver, out: Place<<MapMetaData as Archive>::Archived>, )

Source§

impl Archive for OccupancyGrid

Source§

const COPY_OPTIMIZATION: CopyOptimization<OccupancyGrid>

Source§

type Archived = ArchivedOccupancyGrid

Source§

type Resolver = OccupancyGridResolver

Source§

fn resolve( &self, resolver: <OccupancyGrid as Archive>::Resolver, out: Place<<OccupancyGrid as Archive>::Archived>, )

Source§

impl Archive for Odometry

Source§

const COPY_OPTIMIZATION: CopyOptimization<Odometry>

Source§

type Archived = ArchivedOdometry

Source§

type Resolver = OdometryResolver

Source§

fn resolve( &self, resolver: <Odometry as Archive>::Resolver, out: Place<<Odometry as Archive>::Archived>, )

Source§

impl Archive for Path

Source§

const COPY_OPTIMIZATION: CopyOptimization<Path>

Source§

type Archived = ArchivedPath

Source§

type Resolver = PathResolver

Source§

fn resolve( &self, resolver: <Path as Archive>::Resolver, out: Place<<Path as Archive>::Archived>, )

Source§

impl Archive for GetMapRequest

Source§

const COPY_OPTIMIZATION: CopyOptimization<GetMapRequest>

Source§

type Archived = ArchivedGetMapRequest

Source§

type Resolver = GetMapRequestResolver

Source§

fn resolve( &self, resolver: <GetMapRequest as Archive>::Resolver, out: Place<<GetMapRequest as Archive>::Archived>, )

Source§

impl Archive for GetMapResponse

Source§

const COPY_OPTIMIZATION: CopyOptimization<GetMapResponse>

Source§

type Archived = ArchivedGetMapResponse

Source§

type Resolver = GetMapResponseResolver

Source§

fn resolve( &self, resolver: <GetMapResponse as Archive>::Resolver, out: Place<<GetMapResponse as Archive>::Archived>, )

Source§

impl Archive for GetPlanRequest

Source§

const COPY_OPTIMIZATION: CopyOptimization<GetPlanRequest>

Source§

type Archived = ArchivedGetPlanRequest

Source§

type Resolver = GetPlanRequestResolver

Source§

fn resolve( &self, resolver: <GetPlanRequest as Archive>::Resolver, out: Place<<GetPlanRequest as Archive>::Archived>, )

Source§

impl Archive for GetPlanResponse
where Path: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<GetPlanResponse>

Source§

type Archived = ArchivedGetPlanResponse

Source§

type Resolver = GetPlanResponseResolver

Source§

fn resolve( &self, resolver: <GetPlanResponse as Archive>::Resolver, out: Place<<GetPlanResponse as Archive>::Archived>, )

Source§

impl Archive for LoadMapRequest
where String: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<LoadMapRequest>

Source§

type Archived = ArchivedLoadMapRequest

Source§

type Resolver = LoadMapRequestResolver

Source§

fn resolve( &self, resolver: <LoadMapRequest as Archive>::Resolver, out: Place<<LoadMapRequest as Archive>::Archived>, )

Source§

impl Archive for LoadMapResponse

Source§

const COPY_OPTIMIZATION: CopyOptimization<LoadMapResponse>

Source§

type Archived = ArchivedLoadMapResponse

Source§

type Resolver = LoadMapResponseResolver

Source§

fn resolve( &self, resolver: <LoadMapResponse as Archive>::Resolver, out: Place<<LoadMapResponse as Archive>::Archived>, )

Source§

impl Archive for SetMapRequest

Source§

const COPY_OPTIMIZATION: CopyOptimization<SetMapRequest>

Source§

type Archived = ArchivedSetMapRequest

Source§

type Resolver = SetMapRequestResolver

Source§

fn resolve( &self, resolver: <SetMapRequest as Archive>::Resolver, out: Place<<SetMapRequest as Archive>::Archived>, )

Source§

impl Archive for SetMapResponse
where bool: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<SetMapResponse>

Source§

type Archived = ArchivedSetMapResponse

Source§

type Resolver = SetMapResponseResolver

Source§

fn resolve( &self, resolver: <SetMapResponse as Archive>::Resolver, out: Place<<SetMapResponse as Archive>::Archived>, )

Source§

impl Archive for BatteryState

Source§

const COPY_OPTIMIZATION: CopyOptimization<BatteryState>

Source§

type Archived = ArchivedBatteryState

Source§

type Resolver = BatteryStateResolver

Source§

fn resolve( &self, resolver: <BatteryState as Archive>::Resolver, out: Place<<BatteryState as Archive>::Archived>, )

Source§

impl Archive for CameraInfo

Source§

const COPY_OPTIMIZATION: CopyOptimization<CameraInfo>

Source§

type Archived = ArchivedCameraInfo

Source§

type Resolver = CameraInfoResolver

Source§

fn resolve( &self, resolver: <CameraInfo as Archive>::Resolver, out: Place<<CameraInfo as Archive>::Archived>, )

Source§

impl Archive for ChannelFloat32

Source§

const COPY_OPTIMIZATION: CopyOptimization<ChannelFloat32>

Source§

type Archived = ArchivedChannelFloat32

Source§

type Resolver = ChannelFloat32Resolver

Source§

fn resolve( &self, resolver: <ChannelFloat32 as Archive>::Resolver, out: Place<<ChannelFloat32 as Archive>::Archived>, )

Source§

impl Archive for CompressedImage

Source§

const COPY_OPTIMIZATION: CopyOptimization<CompressedImage>

Source§

type Archived = ArchivedCompressedImage

Source§

type Resolver = CompressedImageResolver

Source§

fn resolve( &self, resolver: <CompressedImage as Archive>::Resolver, out: Place<<CompressedImage as Archive>::Archived>, )

Source§

impl Archive for FluidPressure

Source§

const COPY_OPTIMIZATION: CopyOptimization<FluidPressure>

Source§

type Archived = ArchivedFluidPressure

Source§

type Resolver = FluidPressureResolver

Source§

fn resolve( &self, resolver: <FluidPressure as Archive>::Resolver, out: Place<<FluidPressure as Archive>::Archived>, )

Source§

impl Archive for Illuminance

Source§

const COPY_OPTIMIZATION: CopyOptimization<Illuminance>

Source§

type Archived = ArchivedIlluminance

Source§

type Resolver = IlluminanceResolver

Source§

fn resolve( &self, resolver: <Illuminance as Archive>::Resolver, out: Place<<Illuminance as Archive>::Archived>, )

Source§

impl Archive for Image

Source§

const COPY_OPTIMIZATION: CopyOptimization<Image>

Source§

type Archived = ArchivedImage

Source§

type Resolver = ImageResolver

Source§

fn resolve( &self, resolver: <Image as Archive>::Resolver, out: Place<<Image as Archive>::Archived>, )

Source§

impl Archive for Imu

Source§

const COPY_OPTIMIZATION: CopyOptimization<Imu>

Source§

type Archived = ArchivedImu

Source§

type Resolver = ImuResolver

Source§

fn resolve( &self, resolver: <Imu as Archive>::Resolver, out: Place<<Imu as Archive>::Archived>, )

Source§

impl Archive for JointState

Source§

const COPY_OPTIMIZATION: CopyOptimization<JointState>

Source§

type Archived = ArchivedJointState

Source§

type Resolver = JointStateResolver

Source§

fn resolve( &self, resolver: <JointState as Archive>::Resolver, out: Place<<JointState as Archive>::Archived>, )

Source§

impl Archive for Joy

Source§

const COPY_OPTIMIZATION: CopyOptimization<Joy>

Source§

type Archived = ArchivedJoy

Source§

type Resolver = JoyResolver

Source§

fn resolve( &self, resolver: <Joy as Archive>::Resolver, out: Place<<Joy as Archive>::Archived>, )

Source§

impl Archive for JoyFeedback
where u8: Archive, f32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<JoyFeedback>

Source§

type Archived = ArchivedJoyFeedback

Source§

type Resolver = JoyFeedbackResolver

Source§

fn resolve( &self, resolver: <JoyFeedback as Archive>::Resolver, out: Place<<JoyFeedback as Archive>::Archived>, )

Source§

impl Archive for JoyFeedbackArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<JoyFeedbackArray>

Source§

type Archived = ArchivedJoyFeedbackArray

Source§

type Resolver = JoyFeedbackArrayResolver

Source§

fn resolve( &self, resolver: <JoyFeedbackArray as Archive>::Resolver, out: Place<<JoyFeedbackArray as Archive>::Archived>, )

Source§

impl Archive for LaserEcho
where Vec<f32>: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<LaserEcho>

Source§

type Archived = ArchivedLaserEcho

Source§

type Resolver = LaserEchoResolver

Source§

fn resolve( &self, resolver: <LaserEcho as Archive>::Resolver, out: Place<<LaserEcho as Archive>::Archived>, )

Source§

impl Archive for LaserScan

Source§

const COPY_OPTIMIZATION: CopyOptimization<LaserScan>

Source§

type Archived = ArchivedLaserScan

Source§

type Resolver = LaserScanResolver

Source§

fn resolve( &self, resolver: <LaserScan as Archive>::Resolver, out: Place<<LaserScan as Archive>::Archived>, )

Source§

impl Archive for MagneticField

Source§

const COPY_OPTIMIZATION: CopyOptimization<MagneticField>

Source§

type Archived = ArchivedMagneticField

Source§

type Resolver = MagneticFieldResolver

Source§

fn resolve( &self, resolver: <MagneticField as Archive>::Resolver, out: Place<<MagneticField as Archive>::Archived>, )

Source§

impl Archive for MultiDOFJointState

Source§

const COPY_OPTIMIZATION: CopyOptimization<MultiDOFJointState>

Source§

type Archived = ArchivedMultiDOFJointState

Source§

type Resolver = MultiDOFJointStateResolver

Source§

fn resolve( &self, resolver: <MultiDOFJointState as Archive>::Resolver, out: Place<<MultiDOFJointState as Archive>::Archived>, )

Source§

impl Archive for MultiEchoLaserScan

Source§

const COPY_OPTIMIZATION: CopyOptimization<MultiEchoLaserScan>

Source§

type Archived = ArchivedMultiEchoLaserScan

Source§

type Resolver = MultiEchoLaserScanResolver

Source§

fn resolve( &self, resolver: <MultiEchoLaserScan as Archive>::Resolver, out: Place<<MultiEchoLaserScan as Archive>::Archived>, )

Source§

impl Archive for NavSatFix

Source§

const COPY_OPTIMIZATION: CopyOptimization<NavSatFix>

Source§

type Archived = ArchivedNavSatFix

Source§

type Resolver = NavSatFixResolver

Source§

fn resolve( &self, resolver: <NavSatFix as Archive>::Resolver, out: Place<<NavSatFix as Archive>::Archived>, )

Source§

impl Archive for NavSatStatus
where i8: Archive, u16: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<NavSatStatus>

Source§

type Archived = ArchivedNavSatStatus

Source§

type Resolver = NavSatStatusResolver

Source§

fn resolve( &self, resolver: <NavSatStatus as Archive>::Resolver, out: Place<<NavSatStatus as Archive>::Archived>, )

Source§

impl Archive for PointCloud2

Source§

const COPY_OPTIMIZATION: CopyOptimization<PointCloud2>

Source§

type Archived = ArchivedPointCloud2

Source§

type Resolver = PointCloud2Resolver

Source§

fn resolve( &self, resolver: <PointCloud2 as Archive>::Resolver, out: Place<<PointCloud2 as Archive>::Archived>, )

Source§

impl Archive for PointCloud

Source§

const COPY_OPTIMIZATION: CopyOptimization<PointCloud>

Source§

type Archived = ArchivedPointCloud

Source§

type Resolver = PointCloudResolver

Source§

fn resolve( &self, resolver: <PointCloud as Archive>::Resolver, out: Place<<PointCloud as Archive>::Archived>, )

Source§

impl Archive for PointField

Source§

const COPY_OPTIMIZATION: CopyOptimization<PointField>

Source§

type Archived = ArchivedPointField

Source§

type Resolver = PointFieldResolver

Source§

fn resolve( &self, resolver: <PointField as Archive>::Resolver, out: Place<<PointField as Archive>::Archived>, )

Source§

impl Archive for Range

Source§

const COPY_OPTIMIZATION: CopyOptimization<Range>

Source§

type Archived = ArchivedRange

Source§

type Resolver = RangeResolver

Source§

fn resolve( &self, resolver: <Range as Archive>::Resolver, out: Place<<Range as Archive>::Archived>, )

Source§

impl Archive for RegionOfInterest

Source§

const COPY_OPTIMIZATION: CopyOptimization<RegionOfInterest>

Source§

type Archived = ArchivedRegionOfInterest

Source§

type Resolver = RegionOfInterestResolver

Source§

fn resolve( &self, resolver: <RegionOfInterest as Archive>::Resolver, out: Place<<RegionOfInterest as Archive>::Archived>, )

Source§

impl Archive for RelativeHumidity

Source§

const COPY_OPTIMIZATION: CopyOptimization<RelativeHumidity>

Source§

type Archived = ArchivedRelativeHumidity

Source§

type Resolver = RelativeHumidityResolver

Source§

fn resolve( &self, resolver: <RelativeHumidity as Archive>::Resolver, out: Place<<RelativeHumidity as Archive>::Archived>, )

Source§

impl Archive for Temperature

Source§

const COPY_OPTIMIZATION: CopyOptimization<Temperature>

Source§

type Archived = ArchivedTemperature

Source§

type Resolver = TemperatureResolver

Source§

fn resolve( &self, resolver: <Temperature as Archive>::Resolver, out: Place<<Temperature as Archive>::Archived>, )

Source§

impl Archive for TimeReference

Source§

const COPY_OPTIMIZATION: CopyOptimization<TimeReference>

Source§

type Archived = ArchivedTimeReference

Source§

type Resolver = TimeReferenceResolver

Source§

fn resolve( &self, resolver: <TimeReference as Archive>::Resolver, out: Place<<TimeReference as Archive>::Archived>, )

Source§

impl Archive for SetCameraInfoRequest

Source§

const COPY_OPTIMIZATION: CopyOptimization<SetCameraInfoRequest>

Source§

type Archived = ArchivedSetCameraInfoRequest

Source§

type Resolver = SetCameraInfoRequestResolver

Source§

fn resolve( &self, resolver: <SetCameraInfoRequest as Archive>::Resolver, out: Place<<SetCameraInfoRequest as Archive>::Archived>, )

Source§

impl Archive for SetCameraInfoResponse

Source§

const COPY_OPTIMIZATION: CopyOptimization<SetCameraInfoResponse>

Source§

type Archived = ArchivedSetCameraInfoResponse

Source§

type Resolver = SetCameraInfoResponseResolver

Source§

fn resolve( &self, resolver: <SetCameraInfoResponse as Archive>::Resolver, out: Place<<SetCameraInfoResponse as Archive>::Archived>, )

Source§

impl Archive for Bool
where bool: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Bool>

Source§

type Archived = ArchivedBool

Source§

type Resolver = BoolResolver

Source§

fn resolve( &self, resolver: <Bool as Archive>::Resolver, out: Place<<Bool as Archive>::Archived>, )

Source§

impl Archive for Byte
where u8: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Byte>

Source§

type Archived = ArchivedByte

Source§

type Resolver = ByteResolver

Source§

fn resolve( &self, resolver: <Byte as Archive>::Resolver, out: Place<<Byte as Archive>::Archived>, )

Source§

impl Archive for ByteMultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<ByteMultiArray>

Source§

type Archived = ArchivedByteMultiArray

Source§

type Resolver = ByteMultiArrayResolver

Source§

fn resolve( &self, resolver: <ByteMultiArray as Archive>::Resolver, out: Place<<ByteMultiArray as Archive>::Archived>, )

Source§

impl Archive for Char
where i8: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Char>

Source§

type Archived = ArchivedChar

Source§

type Resolver = CharResolver

Source§

fn resolve( &self, resolver: <Char as Archive>::Resolver, out: Place<<Char as Archive>::Archived>, )

Source§

impl Archive for ColorRGBA
where f32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<ColorRGBA>

Source§

type Archived = ArchivedColorRGBA

Source§

type Resolver = ColorRGBAResolver

Source§

fn resolve( &self, resolver: <ColorRGBA as Archive>::Resolver, out: Place<<ColorRGBA as Archive>::Archived>, )

Source§

impl Archive for Empty

Source§

const COPY_OPTIMIZATION: CopyOptimization<Empty>

Source§

type Archived = ArchivedEmpty

Source§

type Resolver = EmptyResolver

Source§

fn resolve( &self, resolver: <Empty as Archive>::Resolver, out: Place<<Empty as Archive>::Archived>, )

Source§

impl Archive for Float32
where f32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Float32>

Source§

type Archived = ArchivedFloat32

Source§

type Resolver = Float32Resolver

Source§

fn resolve( &self, resolver: <Float32 as Archive>::Resolver, out: Place<<Float32 as Archive>::Archived>, )

Source§

impl Archive for Float32MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Float32MultiArray>

Source§

type Archived = ArchivedFloat32MultiArray

Source§

type Resolver = Float32MultiArrayResolver

Source§

fn resolve( &self, resolver: <Float32MultiArray as Archive>::Resolver, out: Place<<Float32MultiArray as Archive>::Archived>, )

Source§

impl Archive for Float64
where f64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Float64>

Source§

type Archived = ArchivedFloat64

Source§

type Resolver = Float64Resolver

Source§

fn resolve( &self, resolver: <Float64 as Archive>::Resolver, out: Place<<Float64 as Archive>::Archived>, )

Source§

impl Archive for Float64MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Float64MultiArray>

Source§

type Archived = ArchivedFloat64MultiArray

Source§

type Resolver = Float64MultiArrayResolver

Source§

fn resolve( &self, resolver: <Float64MultiArray as Archive>::Resolver, out: Place<<Float64MultiArray as Archive>::Archived>, )

Source§

impl Archive for Header

Source§

const COPY_OPTIMIZATION: CopyOptimization<Header>

Source§

type Archived = ArchivedHeader

Source§

type Resolver = HeaderResolver

Source§

fn resolve( &self, resolver: <Header as Archive>::Resolver, out: Place<<Header as Archive>::Archived>, )

Source§

impl Archive for Int8
where i8: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int8>

Source§

type Archived = ArchivedInt8

Source§

type Resolver = Int8Resolver

Source§

fn resolve( &self, resolver: <Int8 as Archive>::Resolver, out: Place<<Int8 as Archive>::Archived>, )

Source§

impl Archive for Int8MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int8MultiArray>

Source§

type Archived = ArchivedInt8MultiArray

Source§

type Resolver = Int8MultiArrayResolver

Source§

fn resolve( &self, resolver: <Int8MultiArray as Archive>::Resolver, out: Place<<Int8MultiArray as Archive>::Archived>, )

Source§

impl Archive for Int16
where i16: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int16>

Source§

type Archived = ArchivedInt16

Source§

type Resolver = Int16Resolver

Source§

fn resolve( &self, resolver: <Int16 as Archive>::Resolver, out: Place<<Int16 as Archive>::Archived>, )

Source§

impl Archive for Int16MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int16MultiArray>

Source§

type Archived = ArchivedInt16MultiArray

Source§

type Resolver = Int16MultiArrayResolver

Source§

fn resolve( &self, resolver: <Int16MultiArray as Archive>::Resolver, out: Place<<Int16MultiArray as Archive>::Archived>, )

Source§

impl Archive for Int32
where i32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int32>

Source§

type Archived = ArchivedInt32

Source§

type Resolver = Int32Resolver

Source§

fn resolve( &self, resolver: <Int32 as Archive>::Resolver, out: Place<<Int32 as Archive>::Archived>, )

Source§

impl Archive for Int32MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int32MultiArray>

Source§

type Archived = ArchivedInt32MultiArray

Source§

type Resolver = Int32MultiArrayResolver

Source§

fn resolve( &self, resolver: <Int32MultiArray as Archive>::Resolver, out: Place<<Int32MultiArray as Archive>::Archived>, )

Source§

impl Archive for Int64
where i64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int64>

Source§

type Archived = ArchivedInt64

Source§

type Resolver = Int64Resolver

Source§

fn resolve( &self, resolver: <Int64 as Archive>::Resolver, out: Place<<Int64 as Archive>::Archived>, )

Source§

impl Archive for Int64MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<Int64MultiArray>

Source§

type Archived = ArchivedInt64MultiArray

Source§

type Resolver = Int64MultiArrayResolver

Source§

fn resolve( &self, resolver: <Int64MultiArray as Archive>::Resolver, out: Place<<Int64MultiArray as Archive>::Archived>, )

Source§

impl Archive for MultiArrayDimension

Source§

const COPY_OPTIMIZATION: CopyOptimization<MultiArrayDimension>

Source§

type Archived = ArchivedMultiArrayDimension

Source§

type Resolver = MultiArrayDimensionResolver

Source§

fn resolve( &self, resolver: <MultiArrayDimension as Archive>::Resolver, out: Place<<MultiArrayDimension as Archive>::Archived>, )

Source§

impl Archive for MultiArrayLayout

Source§

const COPY_OPTIMIZATION: CopyOptimization<MultiArrayLayout>

Source§

type Archived = ArchivedMultiArrayLayout

Source§

type Resolver = MultiArrayLayoutResolver

Source§

fn resolve( &self, resolver: <MultiArrayLayout as Archive>::Resolver, out: Place<<MultiArrayLayout as Archive>::Archived>, )

Source§

impl Archive for String
where String: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<String>

Source§

type Archived = ArchivedString

Source§

type Resolver = StringResolver

Source§

fn resolve( &self, resolver: <String as Archive>::Resolver, out: Place<<String as Archive>::Archived>, )

Source§

impl Archive for UInt8
where u8: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt8>

Source§

type Archived = ArchivedUInt8

Source§

type Resolver = UInt8Resolver

Source§

fn resolve( &self, resolver: <UInt8 as Archive>::Resolver, out: Place<<UInt8 as Archive>::Archived>, )

Source§

impl Archive for UInt8MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt8MultiArray>

Source§

type Archived = ArchivedUInt8MultiArray

Source§

type Resolver = UInt8MultiArrayResolver

Source§

fn resolve( &self, resolver: <UInt8MultiArray as Archive>::Resolver, out: Place<<UInt8MultiArray as Archive>::Archived>, )

Source§

impl Archive for UInt16
where u16: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt16>

Source§

type Archived = ArchivedUInt16

Source§

type Resolver = UInt16Resolver

Source§

fn resolve( &self, resolver: <UInt16 as Archive>::Resolver, out: Place<<UInt16 as Archive>::Archived>, )

Source§

impl Archive for UInt16MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt16MultiArray>

Source§

type Archived = ArchivedUInt16MultiArray

Source§

type Resolver = UInt16MultiArrayResolver

Source§

fn resolve( &self, resolver: <UInt16MultiArray as Archive>::Resolver, out: Place<<UInt16MultiArray as Archive>::Archived>, )

Source§

impl Archive for UInt32
where u32: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt32>

Source§

type Archived = ArchivedUInt32

Source§

type Resolver = UInt32Resolver

Source§

fn resolve( &self, resolver: <UInt32 as Archive>::Resolver, out: Place<<UInt32 as Archive>::Archived>, )

Source§

impl Archive for UInt32MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt32MultiArray>

Source§

type Archived = ArchivedUInt32MultiArray

Source§

type Resolver = UInt32MultiArrayResolver

Source§

fn resolve( &self, resolver: <UInt32MultiArray as Archive>::Resolver, out: Place<<UInt32MultiArray as Archive>::Archived>, )

Source§

impl Archive for UInt64
where u64: Archive,

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt64>

Source§

type Archived = ArchivedUInt64

Source§

type Resolver = UInt64Resolver

Source§

fn resolve( &self, resolver: <UInt64 as Archive>::Resolver, out: Place<<UInt64 as Archive>::Archived>, )

Source§

impl Archive for UInt64MultiArray

Source§

const COPY_OPTIMIZATION: CopyOptimization<UInt64MultiArray>

Source§

type Archived = ArchivedUInt64MultiArray

Source§

type Resolver = UInt64MultiArrayResolver

Source§

fn resolve( &self, resolver: <UInt64MultiArray as Archive>::Resolver, out: Place<<UInt64MultiArray as Archive>::Archived>, )

Source§

impl<K> Archive for BTreeSet<K>
where K: Archive + Ord, <K as Archive>::Archived: Ord,

Source§

impl<K, S> Archive for HashSet<K, S>
where K: Archive + Hash + Eq, <K as Archive>::Archived: Hash + Eq,

Source§

impl<K, V> Archive for BTreeMap<K, V>
where K: Archive + Ord, V: Archive, <K as Archive>::Archived: Ord,

Source§

impl<K, V, S> Archive for HashMap<K, V, S>
where V: Archive, K: Archive + Hash + Eq, <K as Archive>::Archived: Hash + Eq,

Source§

type Archived = ArchivedHashMap<<K as Archive>::Archived, <V as Archive>::Archived>

Source§

type Resolver = HashMapResolver

Source§

fn resolve( &self, resolver: <HashMap<K, V, S> as Archive>::Resolver, out: Place<<HashMap<K, V, S> as Archive>::Archived>, )

Source§

impl<T0> Archive for (T0,)
where T0: Archive,

Source§

type Archived = ArchivedTuple1<<T0 as Archive>::Archived>

Source§

type Resolver = (<T0 as Archive>::Resolver,)

Source§

fn resolve( &self, resolver: <(T0,) as Archive>::Resolver, out: Place<<(T0,) as Archive>::Archived>, )

Source§

impl<T0, T1> Archive for (T0, T1)
where T0: Archive, T1: Archive,

Source§

impl<T0, T1, T2> Archive for (T0, T1, T2)
where T0: Archive, T1: Archive, T2: Archive,

Source§

impl<T0, T1, T2, T3> Archive for (T0, T1, T2, T3)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive,

Source§

impl<T0, T1, T2, T3, T4> Archive for (T0, T1, T2, T3, T4)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5> Archive for (T0, T1, T2, T3, T4, T5)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Archive for (T0, T1, T2, T3, T4, T5, T6)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Archive for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Archive for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Archive for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Archive for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Archive for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive, T11: Archive,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Archive for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive, T11: Archive, T12: Archive,

Source§

impl<T> Archive for Bound<T>
where T: Archive,

Source§

type Archived = ArchivedBound<<T as Archive>::Archived>

Source§

type Resolver = Bound<<T as Archive>::Resolver>

Source§

fn resolve( &self, resolver: <Bound<T> as Archive>::Resolver, out: Place<<Bound<T> as Archive>::Archived>, )

Source§

impl<T> Archive for Option<T>
where T: Archive,

Source§

impl<T> Archive for Box<T>
where T: ArchiveUnsized + ?Sized,

Source§

impl<T> Archive for VecDeque<T>
where T: Archive,

Source§

impl<T> Archive for Rc<T>
where T: ArchiveUnsized + ?Sized,

Source§

impl<T> Archive for Weak<T>
where T: ArchiveUnsized + ?Sized,

Source§

impl<T> Archive for Arc<T>
where T: ArchiveUnsized + ?Sized,

Source§

impl<T> Archive for Weak<T>
where T: ArchiveUnsized + ?Sized,

Source§

impl<T> Archive for Vec<T>
where T: Archive,

Source§

impl<T> Archive for PhantomData<T>
where T: ?Sized,

Source§

impl<T> Archive for ManuallyDrop<T>
where T: Archive,

Source§

impl<T> Archive for Range<T>
where T: Archive,

Source§

type Archived = ArchivedRange<<T as Archive>::Archived>

Source§

type Resolver = Range<<T as Archive>::Resolver>

Source§

fn resolve( &self, resolver: <Range<T> as Archive>::Resolver, out: Place<<Range<T> as Archive>::Archived>, )

Source§

impl<T> Archive for RangeFrom<T>
where T: Archive,

Source§

impl<T> Archive for RangeInclusive<T>
where T: Archive,

Source§

impl<T> Archive for RangeTo<T>
where T: Archive,

Source§

impl<T> Archive for RangeToInclusive<T>
where T: Archive,

Source§

impl<T, U> Archive for Result<T, U>
where T: Archive, U: Archive,

Source§

type Archived = ArchivedResult<<T as Archive>::Archived, <U as Archive>::Archived>

Source§

type Resolver = Result<<T as Archive>::Resolver, <U as Archive>::Resolver>

Source§

fn resolve( &self, resolver: <Result<T, U> as Archive>::Resolver, out: Place<<Result<T, U> as Archive>::Archived>, )

Source§

impl<T, const N: usize> Archive for [T; N]
where T: Archive,

Implementors§