GithubHelp home page GithubHelp logo

Comments (1)

avtrujillo avatar avtrujillo commented on June 11, 2024

Looks like implementations are defined starting here for the following:

  • Option<V>> where V: IntoActiveValue<V> + Into<Value> + Nullable,
  • Option<Option<V>> where V: IntoActiveValue<V> + Into<Value> + Nullable,
  • bool
  • i8
  • i16
  • i32
  • i64
  • u8
  • u16
  • u32
  • u64
  • f32
  • f64
  • &'static str
  • String
  • Vec<u8>

The first two are implemented manually, with the rest being implemented using the impl_into_active_value macro. The explanation for the implementation being only for Vec<u8> and not other Vec types is presumably that ActiveValue::Set(V) has the trait bound V: Into, and Into is implemented for Vec<u8> because Vec<u8> is converted into Value::Bytes. It's also implemented here for Vec<V>, but inside a module that requires the "postgres-array" feature to be enabled. Any fix for this would therefore need to be gated behind the "postgres-array" feature in order to work properly.

Edit: I tried doing this

#[cfg(feature = "postgres-array")]
impl IntoActiveValue<Vec> for Vec
where
V: IntoActiveValue + Into + Nullable + sea_query::ValueType + sea_query::with_array::NotU8

but got an error helpfully informing me that

upstream crates may add a new impl of trait sea_query::with_array::NotU8 for type u8 in future versions

Removing the sea_query::with_array::NotU8 bound produces conflicting implementations. Removing the NotU8 bound and deleting impl_into_active_value!(Vec<u8>) just gives me an error informing me that

the trait bound V: NotU8 is not satisfied
required for sea_query::Value to implement From<Vec<V>>
required for Vec<V> to implement `Into<sea_query::Value>

So it looks like we might be blocked on the stabilization of negative trait bounds.

from sea-orm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.