using System;
namespace Capnp
{
///
/// An implementations of this interface represents a struct which is being serialized as Cap'n Proto object.
///
public interface IStructSerializer: IStructDeserializer
{
///
/// Writes data (up to 64 bits) into the underlying struct's data section.
/// The write operation must be aligned to fit within a single word.
///
/// Start bit relative to the struct's data section, little endian
/// Number of bits to write
/// Data bits to write
/// The object was not determined to be a struct
/// The data slice specified by and
/// is not completely within the struct's data section, misaligned, exceeds one word, or is negative
void StructWriteData(ulong bitOffset, int bitCount, ulong data);
///
/// The struct's data section as memory span.
///
Span StructDataSection { get; }
}
}