Skip to main content

SignedWatermarkParams

Struct SignedWatermarkParams 

Source
pub struct SignedWatermarkParams {
    pub url: String,
    pub position: Option<String>,
    pub opacity: Option<u8>,
    pub margin: Option<u32>,
}
Expand description

Builds a signed public transform URL for the server adapter.

The resulting URL targets either GET /images/by-path or GET /images/by-url depending on source. base_url must be an absolute http or https URL that points at the externally visible server origin. The helper applies the same canonical query and HMAC-SHA256 signature scheme that the server adapter verifies at request time.

The helper serializes only explicitly requested transform options and omits fields that would resolve to the documented defaults on the server side.

§Errors

Returns an error string when base_url is not an absolute http or https URL, when the visible authority cannot be determined, or when the HMAC state cannot be initialized.

§Examples

use truss::adapters::server::{sign_public_url, SignedUrlSource};
use truss::{MediaType, TransformOptions};

let url = sign_public_url(
    "https://cdn.example.com",
    SignedUrlSource::Path {
        path: "/image.png".to_string(),
        version: None,
    },
    &TransformOptions {
        format: Some(MediaType::Jpeg),
        ..TransformOptions::default()
    },
    "public-dev",
    "secret-value",
    4_102_444_800,
    None,
    None,
)
.unwrap();

assert!(url.starts_with("https://cdn.example.com/images/by-path?"));
assert!(url.contains("keyId=public-dev"));
assert!(url.contains("signature="));

Optional watermark parameters for signed URL generation.

Fields§

§url: String§position: Option<String>§opacity: Option<u8>§margin: Option<u32>

Trait Implementations§

Source§

impl Debug for SignedWatermarkParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SignedWatermarkParams

Source§

fn default() -> SignedWatermarkParams

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> To for T
where T: ?Sized,

Source§

fn to<T>(self) -> T
where Self: Into<T>,

Converts to T by calling Into<T>::into.
Source§

fn try_to<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.